【问题标题】:Adding a checkbox column to asp.net gridview将复选框列添加到 asp.net gridview
【发布时间】:2014-04-10 17:57:12
【问题描述】:

关于在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>

【问题讨论】:

    标签: c# asp.net gridview checkbox


    【解决方案1】:

    首先你必须将 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
        }
    }
    

    【讨论】:

    • 它没有填充文本框
    • 我还在 OnCheckedChanged 事件上设置了断点,并且在检查时它不会中断。
    • 我正要问 =)
    • 仍然没有显示记录会不会是 selectedindexchanged 搞砸了?
    • 在您的循环推荐中......它可以在一行中完成。每个都更容易使用。 foreach (GridViewRow gvr in GridView1.Rows) 而不是 var rows = dropdeadGridView.Rows; int count = dropdeadGridView.Rows.Count; for (int i = 0; i
    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 2016-12-17
    相关资源
    最近更新 更多