عندما تحتوي DataGrid على وظيفتي الترحيل والفرز، يرجى ملاحظة أنه عند إعادة ربط مصدر البيانات، MyDataGrid.CurrentPageIndex=0;
ما يلي هو الكود الأصلي لتنفيذ الوظائف المذكورة أعلاه، لذلك لن يكون هناك المزيد من التعديلات. يحتوي aspx على DataGrid والقائمة المنسدلة التي تتحكم في التغييرات في مصدر البيانات الخاص به.
كود داتا غريد
<asp:datagrid id = "MyDataGrid" runat = "server" BorderColor = "#CCCCCC" حجم الخط = "100٪" HorizontalAlign = "المركز"
AutoGenerateColumns = "False" OnDeleteCommand = "MyDataGrid_Delete" OnSortCommand = "Sort_Grid" OnPageIndexChanged = "MyDataGrid_PageIndexChanged"
DataKeyField = "ACC_NO" PagerStyle-Position = "أسفل" PagerStyle-HorizontalAlign = "المركز" PagerStyle-Mode = "NextPrev"
حجم الصفحة = "10" السماح بالفرز = "صحيح" السماح بالترحيل = "صحيح" CellPadding = "4" العرض = "100٪">
<AlternatingItemStyle BackColor="#E9E9E6"></AlternatingItemStyle>
<HeaderStyle Font-Bold="True" Wrap = "False" ForeColor = "أبيض" BackColor = "#999999"></HeaderStyle>
<الأعمدة>
<asp:ButtonColumn Text="口" CommandName="Delete"></asp:ButtonColumn>
<asp:BoundColumn DataField="NO" SortExpression="NO" ReadOnly="True" HeaderText="الرقم التسلسلي"></asp:BoundColumn>
<asp:BoundColumn DataField="ID" SortExpression="ID" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="NAME" SortExpression="NAME" HeaderText="name"></asp:BoundColumn>
<asp:BoundColumn DataField="C_NAME" SortExpression="C_NAME" HeaderText="اسم كل موضوع"></asp:BoundColumn>
<asp:BoundColumn DataField="FLG" SortExpression="FLG" HeaderText="item"></asp:BoundColumn>
</الأعمدة>
<PagerStyle NextPageText="العناصر العشرة التالية" PrevPageText="Return" HorizontalAlign="Center"></PagerStyle>
</asp:datagrid>
رمز القائمة المنسدلة
<asp:dropdownlist id = "ddlWk" Runat = "الخادم" AutoPostBack = "True" Enabled = "False">
<asp:ListItem Value="0">طوكيو</asp:ListItem>
<asp:ListItem Value="3">جيوتشو</asp:ListItem>
<asp:ListItem Value="8">هوكايدو</asp:ListItem>
<asp:ListItem Value="9">شيكوكو</asp:ListItem>
</asp:القائمة المنسدلة>
الكود الأساسي لملف aspx.cs هو كما يلي:
Page_Load باطلة خاصة (مرسل الكائن، System.EventArgs e)
{
إذا (!IsPostBack)
{
جلسة ["WP"]="0";
ddlWk_getS();
BindGrid();
}
}
ddlWk_getS () باطلة خاصة
{
التبديل (جلسة ["WP"].ToString())
{
الحالة "0":ddlWk.SelectedIndex=0;
استراحة؛
الحالة "3":ddlWk.SelectedIndex=1;
استراحة؛
الحالة "8":ddlWk.SelectedIndex=2;
استراحة؛
الحالة "9":ddlWk.SelectedIndex=3;
استراحة؛
default:ddlWk.SelectedIndex=0;
استراحة؛
}
}
الفراغ المحمي BindGrid ()
{
MyDataGrid.DataSource=GetData().Tables["vCO"].DefaultView;
MyDataGrid.DataBind();
//COUNT.Text=MyDataGrid.Columns.Count.ToString();
}
/// <الملخص>
/// إرجاع البيانات
/// </الملخص>
///<إرجاع></إرجاع>
مجموعة البيانات الخاصة GetData()
{
string strConn=(String) ((NameValueCollection) context.GetConfig("system.web/database"))["strConn"];
باستخدام (SqlConnection conn = new SqlConnection(strConn))
{
SqlCommand cmd = new SqlCommand("sp_C",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@place",SqlDbType.VarChar,2);
cmd.Parameters["@place"].Value=Session["WP"].ToString();
conn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand=cmd;
DataSet ds=new DataSet();
da.Fill(ds,"vCO");
Count.Text="ヒット:"+ds.Tables["vCO"].Rows.Count.ToString()+"قطع";
عودة س.
}
}
/// <الملخص>
/// اقسم واحدًا من DataSet
/// </الملخص>
/// <param name="sender"></param>
/// <param name="E"></param>
الفراغ المحمي MyDataGrid_Delete (مرسل الكائن، DataGridCommandEventArgs E)
{
String strID=MyDataGrid.DataKeys[(int)E.Item.ItemIndex].ToString();
//حذف العملية
}
/// <الملخص>
/// عملية الترحيل
/// </الملخص>
/// <param name="sender"></param>
/// <param name="e"></param>
الفراغ المحمي MyDataGrid_PageIndexChanged (مصدر الكائن، DataGridPageChangedEventArgs e)
{
MyDataGrid.CurrentPageIndex=e.NewPageIndex;
BindGrid();
}
/// <الملخص>
/// نوع
/// </الملخص>
/// <param name="sender"></param>
/// <param name="e"></param>
الفراغ المحمي Sort_Grid (مرسل الكائن، DataGridSortCommandEventArgs e)
{
DataView dv= new DataView(GetData().Tables["vCO"]);
dv.Sort= e.SortExpression.ToString();
MyDataGrid.DataSource=dv;
MyDataGrid.DataBind();
}
#region Web override protected void OnInit(EventArgs e)
{
// //
InitializeComponent();
base.OnInit(e);
}
/// <summary> /// </summary>
الفراغ الخاص ()InitializeComponent
{
this.ddlWk.SelectedIndexChanged += new System.EventHandler(this.ddlWk_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load })
;
#endregion
الخاص void ddlWk_SelectedIndexChanged(object sender, System.EventArgs e)
{
Session["WP"]=ddlWk.SelectedValue;
MyDataGrid.CurrentPageIndex=0;// بدون هذه الجملة، سيحدث خطأ عندما يتجاوز رقم الصفحة نطاق مصادر البيانات الأخرى
BindGrid();
Response.Write( "<script language='javascript'>parent.menuframe.location.reload();</script>");
}