c# - 将复选框列添加到 asp.net gridview

标签 c# asp.net gridview checkbox

asp.net 中将 CheckBox 列添加到 gridview 并获取多个值时,我有几个问题。首先,我看到每个人都将 OnCheckedChanged="chkview_CheckedChanged" 添加到他们的 aspx 页面,但是当您单击 CheckBox 以设置其操作时,它不会打开 OnCheckedChanged="chkview_CheckedChanged"。它改为打开 SelectedIndexChanged 事件。我想要做的是,当他们选择一个 CheckBox 时,它会将相应的行信息添加到 TextBox。这是我目前用来设置值的内容。我怎样才能改用选定的 CheckBox

protected void dropGridView_SelectedIndexChanged1(object sender, EventArgs e)
{
    GridViewRow row = dropdeadGridView.SelectedRow;
    IDTextBox.Text = row.Cells[1].Text;
    loadnumTextBox.Text = row.Cells[2].Text;
}

一旦完成,你怎么能让它得到检查的每一行,而不是只有一个,这就是我当前的问题。我正在寻找一种方法来选择多行并有一个选择按钮。我已经做了很多查找,但在上面找不到任何东西,所以我试图用 CheckBoxes 来完成这个。关于如何添加它并获得可以选择的多行的任何想法。提前谢谢你。

这是我编辑*为 CheckBox 列发布 asp 代码:

<asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="SelectCheckBox" runat="server" OnCheckedChanged="SelectCheckBox_OnCheckedChanged"/>
            </ItemTemplate>
        </asp:TemplateField>

最佳答案

首先你必须将 autopostback 属性设置为 true :

<asp:CheckBox ID="SelectCheckBox" runat="server" AutoPostBack="true" 
              OnCheckedChanged="SelectCheckBox_OnCheckedChanged"/>

在您的例子中,SelectedIndexChanged 由 gridview 发送。对于复选框事件,您必须使用 OnCheckedChanged 事件:

protected void SelectCheckBox_OnCheckedChanged(object sender, EventArgs e)
{
    CheckBox chk = sender as CheckBox ;

    if(chk.Checked)
    {
        GridViewRow row = (GridViewRow)chk.NamingContainer;
        IDTextBox.Text = row.Cells[1].Text;
        loadnumTextBox.Text = row.Cells[2].Text;
    }
}

如果你想遍历所有选中的复选框:

var rows = dropdeadGridView.Rows;
int count = dropdeadGridView.Rows.Count;
for (int i = 0; i < count; i++)
{
    bool isChecked = ((CheckBox)rows[i].FindControl("chkBox")).Checked;
    if(isChecked)
    {
        //Do what you want
    }
}

关于c# - 将复选框列添加到 asp.net gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22252593/

相关文章:

asp.net - 导致 GridView 无效回发的 TemplateField 按钮

ASP.NET 和 SQL Server : can #temp-table be used by an ASP. NET Web 表单应用程序?

c# - ASP.Net 无法发送电子邮件

css - 我如何使用隐藏电话 Bootstrap 类隐藏特定的 asp.net WebGridColumn/s

c# - 不正确的十进制值 : for column mysql

c# - 绑定(bind)到 SqlDataAdapter 后,ASP.NET GridView 宽度不会保持在 100%

c# - Asp.net gridview列宽

c# - 需要具有 4 部分目录结构的 MVC3 项目示例,可能使用站点地图

c# - 尝试使用 C# 中的 Guid 作为 Cassandra 中的主键

c# - 如何在 C# 中拆分字符串时忽略字符