【问题标题】:How can i delete a row in a GridView using CheckBox?如何使用 CheckBox 删除 GridView 中的一行?
【发布时间】:2014-04-23 02:07:54
【问题描述】:

我正在做电子商务,但遇到了一些麻烦。

我有一个购物车,它是一个名为“carrinho”的会话,带有一个网格视图。

我想从购物车中删除选中的行。

我必须做什么?

<asp:GridView ID="GridView1" runat="server" >
    <Columns>
        <asp:TemplateField HeaderText="Produto">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("nome") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Foto">
            <ItemTemplate>
                <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("produto.foto") %>' Height="20px" Width="23px" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Quantidade">
            <ItemTemplate>
                <asp:TextBox ID="txtQuantidade" runat="server" Width="20px" Text='<%# Bind("quantidade") %>' ></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Preço">
            <ItemTemplate>
                <asp:Label ID="lblPreco" runat="server" Text='<%# Eval("produto.preco","{0:C}") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="SubTotal">
            <ItemTemplate>
                <asp:Label ID="Label4" runat="server" Text='<%# Eval("Subtotal","{0:C}") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Selecione">
            <ItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:Label ID="lblPrecoTotal" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Remover" Width="109px" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Confirmar" Width="108px" />

【问题讨论】:

  • 获取选中行的 ID 并将其从数据存储中删除并重新绑定网格。

标签: c# asp.net gridview checkbox delete-row


【解决方案1】:

试试这个...

protected void btndelete_Click(object sender, EventArgs e)
    {
        CheckBox cb;
        int[] idArr = new int[Gridview1.Rows.Count];
        int idcount = 0;
        foreach (GridViewRow row in Gridview1.Rows)
        {
            cb = (CheckBox)row.FindControl("chkdelete");
            if (cb != null)
            {
                if (cb.Checked)
                {

                    int ID = Convert.ToInt32(Gridview1.DataKeys[row.RowIndex].Values["ID"].ToString());
                    idArr[idcount] = ID;
                    idcount++;
                }
            }
        }

        //Bind the gridview again...
    }

这里我们要在绑定Gridview的时候把ID设置成datakey name..然后我们把checked的ID收集到idArr..然后我们就可以一个一个删除了...

【讨论】:

    【解决方案2】:

    你应该使用 OnCheckedChanged 事件并删除选定的 gridview 行试试这个http://www.codeproject.com/Questions/703052/How-to-delete-record-particular-gridview-row-check

    【讨论】:

      【解决方案3】:
       public int DeleteSKUMappingItems(string SKUTypeCode, string SellingSKUIds)
          {
              int _returnVal = -1;
              try
              {
                  DbParam[] param = new DbParam[2]{
                                         new DbParam("@SKUTypeCode", SKUTypeCode, SqlDbType.VarChar), 
                                         new DbParam("@SearchString", SellingSKUIds, SqlDbType.VarChar)
                                      };
                  _returnVal = Db.Update("usp_DeleteSKUMappingItems", param);
              }
              catch (Exception ex)
              {
                  _returnVal = -1;
                   WINIT.ErrorLog.ErrorLogger.GetInstance().Log(ex, WINIT.ErrorLog.LogSeverity.Error);
              }
              return _returnVal;
          }
      

      【讨论】:

        猜你喜欢
        • 2010-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多