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

Kpt*_*aos 7 c# asp.net checkbox gridview

我有几个问题,当它涉及到添加CheckBoxgridviewasp.net并获得多个值.首先,我看到每个人都添加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;
}
Run Code Online (Sandbox Code Playgroud)

一旦完成,你怎么能把它带到它将被检查的每一行而不是只是我当前问题的那一行.我正在寻找一种方法来选择多行并有一个选择按钮.我已经做了很多寻找,并且在其上找不到任何东西,所以我试图用它来完成这个CheckBoxes.任何想法我如何添加这个并获得可以选择的多行.先感谢您.

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

<asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="SelectCheckBox" runat="server" OnCheckedChanged="SelectCheckBox_OnCheckedChanged"/>
            </ItemTemplate>
        </asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

Plu*_*lue 11

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

<asp:CheckBox ID="SelectCheckBox" runat="server" AutoPostBack="true" 
              OnCheckedChanged="SelectCheckBox_OnCheckedChanged"/>
Run Code Online (Sandbox Code Playgroud)

在您的情况下,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;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果要循环选中所有选中的复选框:

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
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 在你的循环推荐...它可以在一行中完成.每个都更容易使用.foreach(GridView1.Rows中的GridViewRow gvr)而不是var rows = dropdeadGridView.Rows; int count = dropdeadGridView.Rows.Count; for(int i = 0; i <count; i ++) (2认同)