说明:这个没有写出怎么绑定的数据,要实现的就是四种操作,其中编辑只能更改EditItemTemplate,即这个例子中的种类;
前台:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="3"
OnSelectedIndexChanging="GridView1_SelectedIndexChanging"OnRowDeleting="GridView1_RowDeleting"
AllowPaging="true" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="20"
OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit">
<Columns>
<asp:TemplateField HeaderText=编号">
<ItemTemplate>
<asp:Label ID="Label1" runat="server"><%# Eval("ID")%></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="名称">
<ItemTemplate>
<asp:Label ID="Label2" runat="server"><%# Eval("Name")%></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="种类">
<EditItemTemplate>
<asp:TextBox ID="type" runat="server" Text='<%# Eval("Type") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server"><%# Eval("Type")%></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField SelectText="选择" ShowSelectButton="True" HeaderText="选择" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="True" DeleteText="删除" />
<asp:CommandField ShowEditButton="true" EditText="编辑" CancelText="取消" UpdateText="点我更新" />
</Columns>
</asp:GridView>
后台:
换页函数:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bind(); //绑定函数
}
选择函数:
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
string id = GridView1.Rows[e.NewSelectedIndex].Cells[0].Text;
...
}
删除函数:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id= GridView1.DataKeys[e.RowIndex].Value.ToString();
...
}
更新函数:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int ID = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString());
...
}
取消更新函数:
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bind(); //绑定函数
}
编辑函数:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex; //GridView编辑项索引等于单击行的索引
bind();
}