ضمن asp.net 2.0، يعد عرض الشبكة ملائمًا للغاية. إذا قمت بإضافة عنصر تحكم سلسلة DATASOURCE، فيمكنك ربطه على الفور بعرض الشبكة، وهو أمر مريح للغاية. ولكن في الواقع، يمكنك أيضًا استخدام datatable أو dataview. في هذا الوقت، لن تستخدم عناصر تحكم سلسلة مصدر البيانات. دعونا نتحدث عن كيفية تحقيق تحويل الصفحة وفرز كل عمود في عنصر تحكم عرض الشبكة ضمن asp.net 2.0.
وظيفة التحرير.
أولاً، نقرأ جدول الموظفين في قاعدة بيانات Northwind. بعد وضع عرض الشبكة، قم بإضافة عدة أعمدة مرتبطة، ويكون الكود كما يلي
<asp:GridView ID = "GridView1" runat = "الخادم" السماح بالترحيل = "True" السماح بالفرز = "True"
AutoGenerateColumns = "False" CellPadding = "4" ForeColor = "#333333" GridLines = "لا شيء"
Width = "100%" DataKeyNames = "EmployeeID" OnPageIndexChanging = "GridView1_PageIndexChanging" OnRowEditing = "GridView1_RowEditing" OnRowUpdating = "GridView1_RowUpdating" OnSorting = "GridView1_Sorting" PageSize = "3" OnRowCancelingEdit = "GridView1_RowCancelingEdit" قيد التشغيل RowCommand = "GridView1_RowCommand">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<الأعمدة>
<asp:BoundField DataField="employeeid" HeaderText="معرف الموظف" ReadOnly="True" />
<asp:BoundField DataField = "الاسم الأول" HeaderText = "الاسم الأول" SortExpression = "الاسم الأول" />
<asp:BoundField DataField = "lastname" HeaderText = "اسم العائلة" SortExpression = "اسم العائلة" />
<asp:CommandField ShowEditButton="True" />
</الأعمدة>
<RowStyle BackColor="#FFFFD6" ForeColor="#333333" />
<SelectedRowStyle BackColor = "#FFCC66" Font-Bold = "True" ForeColor = "Navy" />
<PagerStyle BackColor = "#FFCC66" ForeColor = "#333333" HorizontalAlign = "المركز" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
أولاً، نحتاج إلى تنفيذ الترحيل، وتعيين السماح بالترحيل على "صحيح"، وتعيين عدد عناصر الترحيل لكل صفحة، وأخيرًا كتابتها في الكود الخلفي
GridView1_PageIndexChanging باطلة محمية (مرسل الكائن، GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGrid();
}
من أجل تحقيق الفرز التلقائي للنقرات لكل عمود، يمكنك تعيينalloworting=true، ثم تعيين OnSorting="GridView1_Sorting"، حيث يتم تعيين Gridview_sorting
الرمز هو
GridView1_Sorting باطلة محمية (مرسل الكائن، GridViewSortEventArgs e)
{
ViewState["sortexpression"] = e.SortExpression
if (ViewState["sortdirection"] == null)
{
ViewState["sortdirection"] = "asc";
}
آخر
{
إذا (ViewState["sortdirection").ToString() == "asc")
{
ViewState["sortdirection"] = "desc";
}
آخر
{
ViewState["sortdirection"] = "asc";
}
}
BindGrid();
}
من الواضح أن ضبط viewate لحفظ ترتيب كل فرز، أعتقد أنه من السهل فهم ما ورد أعلاه.
أخيرًا، تم تنفيذ وظيفة التحرير، لأنه تم تعيين OnRowEditing = "GridView1_RowEditing" في صفحة aspx، ورمز GridView1_RowEditing هو
GridView1_RowUpdating باطلة محمية (مرسل الكائن، GridViewUpdateEventArgs e)
{
كثافة العمليات empid.
سلسلة fname، lname؛
empid = int.Parse(GridView1.Rows[e.RowIndex].Cells[0].Text);
fname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
]
.Cells[2].Controls[0]).Text;
;كلمة المرور=123456");
cnn.Open();
SqlCommand cmd = new SqlCommand("تحديث مجموعة الموظفين =@fname,lastname=@lname الموظف حيثid=@empid ", cnn);
cmd.Parameters.Add(new SqlParameter("@fname",fname));
cmd.Parameters.Add(new SqlParameter("@lname"، lname));
cmd.Parameters.Add(new SqlParameter("@empid"، empid));
cmd.ExecuteNonQuery();
GridView1.EditIndex
= -1;
BindGrid();
}
GridView1_RowEditing باطلة محمية (مرسل الكائن، GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}
GridView1_RowCancelingEdit (مرسل الكائن، GridViewCancelEditEventArgs e) باطلة محمية
{
GridView1.EditIndex = -1;
BindGrid();
}
كما ترون، الكود أعلاه هو في الواقع نفس إصدار asp.net 1.1. أخيرًا، عملية bindgrid() بسيطة جدًا وملزمة
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("اختر * من الموظفين"، @"مصدر البيانات=localhost;الكتالوج الأولي=northwind;معرف المستخدم=sa;كلمة المرور=123456");
da.Fill(ds،"الموظفين")؛
DataView dv = ds.Tables[0].DefaultView
if (ViewState["sortexpression"] != null)
{
dv.Sort = ViewState["sortexpression"].ToString() + " " + ViewState["sortdirection"].ToString();
}
GridView1.DataSource=dv;
GridView1.DataBind();
هنا يرتبط عرض الشبكة بعرض البيانات، ويتم استخدام dv.sort لتعيين ترتيب كل عملية فرز.
بالطبع، آخر شيء هو حدث page_load.
Page_Load باطلة محمية (مرسل الكائن، EventArgs e)
{
إذا (!IsPostBack)
{
BindGrid();
}
}