积极答复者
gridview启用编辑

问题
-
启用内置编辑功能
您可以通过以下任一方式启用 GridView 控件的内置编辑或删除功能:
。。。。。。。
- 创建一个 TemplateField,其中 ItemTemplate 包含多个命令按钮,要进行更新时可将 CommandName 设置为“Edit”,要进行删除时可设置为“Delete”。有关更多信息,请参见在 GridView Web 服务器控件中创建自定义列。
---------------------------------------------------------------------------
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" CommandName="Edit">编辑</asp:LinkButton>我按这种方式启用编辑,但是点击编辑按钮后没有更新按钮。。。
答案
-
添加CommandField列
<asp:GridView runat="server" ID="gv" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSourceDemo" EnableModelValidation="True"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID"></asp:BoundField> <asp:BoundField DataField="Content" HeaderText="Content" SortExpression="Content"></asp:BoundField> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True"></asp:CommandField> </Columns> </asp:GridView> <asp:SqlDataSource runat="server" ID="SqlDataSourceDemo" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" DeleteCommand="DELETE FROM [DemoTable] WHERE [ID] = @ID" InsertCommand="INSERT INTO [DemoTable] ([Content]) VALUES (@Content)" SelectCommand="SELECT * FROM [DemoTable]" UpdateCommand="UPDATE [DemoTable] SET [Content] = @Content WHERE [ID] = @ID"> <DeleteParameters> <asp:Parameter Name="ID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="Content" Type="String" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="Content" Type="String" /> <asp:Parameter Name="ID" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource>
在RowCommand事件中处理
protected void gv_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Edit") { //gv.Rows[Convert.ToInt32(e.CommandArgument.ToString())].Cells[3].Visible = false; LinkButton lb= (LinkButton)gv.Rows[Convert.ToInt32(e.CommandArgument.ToString())].Cells[3].FindControl("LinkButton1"); lb.Visible = false; } }
- 已标记为答案 Song TianModerator 2011年1月18日 11:02
全部回复
-
添加CommandField列
<asp:GridView runat="server" ID="gv" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSourceDemo" EnableModelValidation="True"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID"></asp:BoundField> <asp:BoundField DataField="Content" HeaderText="Content" SortExpression="Content"></asp:BoundField> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True"></asp:CommandField> </Columns> </asp:GridView> <asp:SqlDataSource runat="server" ID="SqlDataSourceDemo" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" DeleteCommand="DELETE FROM [DemoTable] WHERE [ID] = @ID" InsertCommand="INSERT INTO [DemoTable] ([Content]) VALUES (@Content)" SelectCommand="SELECT * FROM [DemoTable]" UpdateCommand="UPDATE [DemoTable] SET [Content] = @Content WHERE [ID] = @ID"> <DeleteParameters> <asp:Parameter Name="ID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="Content" Type="String" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="Content" Type="String" /> <asp:Parameter Name="ID" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource>
在RowCommand事件中处理
protected void gv_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Edit") { //gv.Rows[Convert.ToInt32(e.CommandArgument.ToString())].Cells[3].Visible = false; LinkButton lb= (LinkButton)gv.Rows[Convert.ToInt32(e.CommandArgument.ToString())].Cells[3].FindControl("LinkButton1"); lb.Visible = false; } }
- 已标记为答案 Song TianModerator 2011年1月18日 11:02