В asp.net 2.0 GridView очень удобен. Если вы добавите элемент управления серии DATASOURCE, вы можете сразу привязать его к GridView, что очень удобно. Но на самом деле вы также можете использовать datatable или dataview. На данный момент вы не будете использовать элементы управления сериями источников данных. Давайте поговорим о том, как реализовать перелистывание страниц и сортировку каждого столбца в элементе управления GridView в asp.net 2.0.
Функция редактирования.
Сначала мы читаем таблицу сотрудников в базе данных Northwind. После размещения GridView добавьте несколько связанных столбцов, код выглядит следующим образом.
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="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" On 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="Last Name" SortExpression="lastname" />
<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="Белый" />
</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["sortdirection"] = "по возрастанию";
}
еще
{
if (ViewState["sortdirection"].ToString() == "по возрастанию")
{
ViewState["sortdirection"] = "desc";
}
еще
{
ViewState["sortdirection"] = "по возрастанию";
}
}
БиндГрид();
}
Очевидно, что установка viewate для сохранения порядка каждой сортировки, я считаю, что вышеизложенное легко понять.
Наконец, реализована функция редактирования, поскольку на странице aspx установлен OnRowEditing="GridView1_RowEditing", а код GridView1_RowEditing
protected void GridView1_RowUpdating (отправитель объекта, GridViewUpdateEventArgs e)
{
интервал эмпид;
строка имя_фамилии, имя_файла;
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(@"data source=localhost;начальный каталог=northwind;идентификатор пользователя=sa ;пароль=123456");
cnn.Открыть();
SqlCommand cmd = new SqlCommand("обновить набор сотрудников firstname=@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();
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. Наконец, процесс связывания Grid() очень прост: он связывает
DataSet ds = новый DataSet();
SqlDataAdapter da = new SqlDataAdapter("выбрать * из сотрудников", @"источник данных=localhost;начальный каталог=northwind;идентификатор пользователя=sa;пароль=123456");
da.Fill(ds,"сотрудники");
DataView dv = ds.Tables[0].DefaultView,
если (ViewState["sortexpression"]!= null)
{
dv.Sort = ViewState["sortexpression".ToString() + " " + ViewState["sortdirection"].ToString();
}
GridView1.DataSource=dv;
GridView1.DataBind();
Здесь представление сетки привязано к представлению данных, а dv.sort используется для установки порядка каждой сортировки. Другими словами, порядок остается неизменным после каждой сортировки.
Конечно, последнее — это событие page_load.
protected void Page_Load (отправитель объекта, EventArgs e)
{
если(!Испостбак)
{
БиндГрид();
}
}