ASP.NET C#使用Datatable连接Checkboxex

时间:2013-10-10 13:54:10

标签: c# asp.net checkbox datagrid datatable

我只是在一个函数中,它从数据库中输出一个文件名列表。我也从数据库中获取它并将其存储到DataTable中。 DataTable将列表提供给DataGrid,DataGrid在页面上显示它。这很好。

我的问题是我希望每个文件名旁边都有一个右边的复选框,我可以勾选,下次保存表单时,数据库条目将被删除。

我该怎么做才能让程序动态显示DataTable的复选框,复选框会知道它有哪个条目?

最诚挚的问候 迈克尔莱特

1 个答案:

答案 0 :(得分:0)

    <asp:TemplateField HeaderText="name" SortExpression="Name">

                        <ItemTemplate>
                        <asp:Checkbox id="chkIsDeletable" runat="server" />
<asp:HiddenField id="hndFileId" runat="server" Value='<%#Eval("FileID")%>' />
                        </ItemTemplate>
                        </asp:TemplateField>

    <asp:TemplateField HeaderText="name" SortExpression="Name">

                        <ItemTemplate>
                        <%#Eval("filename") %>
                        </ItemTemplate>
                        </asp:TemplateField>
  
    
      
        

现在点击按钮点击事件:

      
    
  
protected void Button_Click(object sender, EventArgs e)
    {

String SelectedFileIds ="";
        foreach (GridViewRow item in GridView1.Rows)
        {
            CheckBox chkIsDeletable = item.FindControl("chkIsDeletable") as CheckBox;
            HiddenField hndFileId = item.FindControl("hndFileId") as HiddenField;
            if (chkIsDeletable.Checked)
                SelectedFileIds = hndFileId.Value + ",";
        }
        SelectedFileIds = SelectedFileIds.TrimEnd(",");

}

现在您将拥有勾选了checbox的所有文件ID,现在您可以从包含所选fileids的数据库中删除这些记录。

希望,它会帮助你!!!