asp.net 2.0では、DATASOURCEシリーズのコントロールを追加すると、すぐにgridviewにバインドできるのでとても便利です。ただし、実際には、データテーブルまたはデータビューを使用することもできます。現時点では、データソース シリーズのコントロールは使用しません。 asp.net 2.0 で GridView コントロールの各列のページめくりと並べ替えを実現する方法について説明します。
編集機能。
まず、Northwind データベースの従業員テーブルを読み取ります。グリッドビューを配置した後、いくつかのバインドされた列を追加します。コードは次のとおりです。
<asp:GridView ID="GridView1" runat="server"AllowPaging="True"AllowSorting="True"
AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None"
width="100%" DataKeyNames="従業員ID" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnSorting="GridView1_Sorting" PageSize="3" OnRowCancelingEdit="GridView1_RowCancelingEdit" GridView1_RowCommand">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<コラム>
<asp:BoundField DataField="employeeid" HeaderText="従業員 ID" ReadOnly="True" />
<asp:BoundField DataField="firstname" HeaderText="First Name" SortExpression="firstname" />
<asp:BoundField DataField="姓" 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="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
まず、ページングを実装し、AllowPaging を true に設定し、ページごとのページング項目数を設定し、最後にコードビハインドで記述する必要があります。
protected void GridView1_PageIndexChanging(オブジェクト送信者、GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
バインドグリッド();
}
各列の自動クリック並べ替えを実現するには、allowsorting=true を設定し、次に OnSorting="GridView1_Sorting" を設定します。ここで、gridview_sorting
コードは
protected void GridView1_Sorting(オブジェクト送信者、GridViewSortEventArgs e)
{
ViewState["sortexpression"] = e.SortExpression;
if (ViewState["sortdirection"] == null)
{
ViewState["並べ替え方向"] = "asc";
}
それ以外
{
if (ViewState["sortdirection"].ToString() == "asc")
{
ViewState["並べ替え方向"] = "説明";
}
それ以外
{
ViewState["並べ替え方向"] = "asc";
}
}
バインドグリッド();
}
もちろん、viewate を設定して各並べ替えの順序を保存すると、上記は理解しやすいと思います。
aspx ページに OnRowEditing="GridView1_RowEditing" が設定されており、GridView1_RowEditing のコードが次のようになっているため、最後に編集機能が実装されます。
protected void GridView1_RowUpdating(オブジェクト送信者、GridViewUpdateEventArgs e)
{
int empid;
文字列 fname、lname;
empid = int.Parse(GridView1.Rows[e.RowIndex].Cells[0].Text);
fname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
lname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
SqlConnection cnn = new SqlConnection(@"データ ソース=ローカルホスト;初期カタログ=ノースウィンド;ユーザー ID=sa ;パスワード=123456");
cnn.Open();
SqlCommand cmd = new SqlCommand("従業員の更新セット名=@fname,姓=@lname従業員 whereid=@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();
cnn.Close();
GridView1.EditIndex = -1;
バインドグリッド();
}
protected void GridView1_RowEditing(オブジェクト送信者, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
バインドグリッド();
}
protected void GridView1_RowCancelingEdit(オブジェクト送信者、GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
バインドグリッド();
ご覧のとおり、上記のコードは実際には asp.net 1.1 バージョンと同じです
。
最後に、bindgrid() のプロセスは非常に単純で、バインディングです。
DataSet ds = 新しい DataSet();
SqlDataAdapter da = new SqlDataAdapter("従業員から * を選択", @"データ ソース = ローカルホスト;初期カタログ = ノースウィンド;ユーザー ID = 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();
ここでは、gridview が dataview にバインドされており、各ソートの順序を設定するために dv.sort が使用されています。つまり、ソートのたびに順序は変わりません。
もちろん、最後は page_load イベントです。
protected void Page_Load(オブジェクト送信者, EventArgs e)
{
if(!IsPostBack)
{
バインドグリッド();
}
http://jackyrong.cnblogs.com/archive/2006/07/20/455996.html