none
gridview启用编辑 RRS feed

  • 问题

  • 启用内置编辑功能

    您可以通过以下任一方式启用 GridView 控件的内置编辑或删除功能:

    。。。。。。。

    • 创建一个 TemplateField,其中 ItemTemplate 包含多个命令按钮,要进行更新时可将 CommandName 设置为“Edit”,要进行删除时可设置为“Delete”。有关更多信息,请参见在 GridView Web 服务器控件中创建自定义列

    ---------------------------------------------------------------------------

     <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton runat="server" CommandName="Edit">编辑</asp:LinkButton>

     

    我按这种方式启用编辑,但是点击编辑按钮后没有更新按钮。。。

    2011年1月11日 4:40

答案

  • 添加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;
        }
      }
    

    2011年1月11日 11:56

全部回复

  • 添加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;
        }
      }
    

    2011年1月11日 11:56
  • 我希望用帮助文档上的第三种方式是因为 我想把编辑的linkbutton和其他功能按钮的放在一个单元格里

    如果用commandfile 那就是编辑按钮单独一列了

    2011年1月12日 8:09