Добавление столбца checkbox в asp.net gridview

у меня есть пара вопросов, когда речь идет о добавлении до gridview на asp.net и получаем несколько значений. Во-первых, я вижу, что все добавляют OnCheckedChanged="chkview_CheckedChanged" их aspx страница, но когда вы нажимаете на CheckBox чтобы установить его действия, он не открывается OnCheckedChanged="chkview_CheckedChanged". Она открывается событие. То, что я пытаюсь сделать, это когда они выбирают 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 вместо. Любые идеи, как я могу добавить это и получить несколько строк, которые можно выбрать. Спасибо продвижение.

вот мое редактирование* публикация кода asp для

1 ответов


сначала вы должны установить атрибут autopostback в true:

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

в вашем случае, SelectedIndexChanged отправляется gridview. Для события checkbox вы должны использовать 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
    }
}