在 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/