I am using checkbox in gridview .... I am using it in 1st cell.... When I select the checkbox at run time, I need to get those values... but on selecting or on click to checkbox, it's not finding or value is taking as FALSE... how to write in asp.net backend and in c# code?
我在gridview中使用了复选框....我在第一个单元格中使用它....当我在运行时选择复选框时,我需要获取这些值...但是在选择或单击复选框时,它不是发现或价值是假的...如何用asp.net后端和c#代码写?
<asp:TemplateField>
<ItemTemplate >
<asp:checkbox id="ShowAddress" runat="server" />
</ItemTemplate>
</asp:TemplateField>
Code-behind:
protected void Button1_Click(object sender, EventArgs e)
{
// Looping through all the rows in the GridView
foreach (GridViewRow di in GridView1.Rows)
{
CheckBox chkBx = (CheckBox)di.FindControl("ShowAddress");
if (chkBx != null && chkBx.Checked)
{
/// put your code here
}
}
}
Is there any implementation to be done in script at page load?
页面加载时脚本中是否有任何实现?
Can anyone help?
有人可以帮忙吗?
5 个解决方案
#1
How do you populate your GridView? If you do this in Page_Load, make sure you are not doing it on postbacks (check IsPostBack).
你如何填充你的GridView?如果你在Page_Load中执行此操作,请确保您没有在回发中执行此操作(请检查IsPostBack)。
Is your chkBx variable null?
你的chkBx变量是null吗?
The following code works:
以下代码有效:
protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = row.Cells[0].Controls[0] as CheckBox;
if (chk != null && chk.Checked)
{
// ...
}
}
}
#2
StringCollection idCollection = new StringCollection();
string strID = string.Empty;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox chkDelete = (CheckBox) GridView1.Rows.Cells[0].FindControl("chkSelect");
if (chkDelete != null)
{
if (chkDelete.Checked)
{
strID = GridView1.Rows.Cells[1].Text;
idCollection.Add(strID);
}
}
}
for more details check this link: http://www.itworld2.com/ghowto.aspx?id=69
有关详细信息,请访问此链接:http://www.itworld2.com/ghowto.aspx?id = 69
#3
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Loadgridview();// its a correct
}// not Loadgridview() here if you load above error is occur
}
check it
#4
int i = 0;
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)GridView_AdminTags.Rows[i].Cells[0].FindControl("chkTag");
if (chk != null)
if (chk.Checked)
{
////.......;
}
i++;
}
i = 0;
#5
Jakob Answer will work if below line is used. Even one control only in the cell, index need to be 1 not 0
如果使用以下行,Jakob Answer将起作用。即使一个控件只在单元格中,索引也需要为1而不是0
CheckBox chk = row.Cells[0].Controls[1] as CheckBox;
Thank you Sam
谢谢山姆
#1
How do you populate your GridView? If you do this in Page_Load, make sure you are not doing it on postbacks (check IsPostBack).
你如何填充你的GridView?如果你在Page_Load中执行此操作,请确保您没有在回发中执行此操作(请检查IsPostBack)。
Is your chkBx variable null?
你的chkBx变量是null吗?
The following code works:
以下代码有效:
protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = row.Cells[0].Controls[0] as CheckBox;
if (chk != null && chk.Checked)
{
// ...
}
}
}
#2
StringCollection idCollection = new StringCollection();
string strID = string.Empty;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox chkDelete = (CheckBox) GridView1.Rows.Cells[0].FindControl("chkSelect");
if (chkDelete != null)
{
if (chkDelete.Checked)
{
strID = GridView1.Rows.Cells[1].Text;
idCollection.Add(strID);
}
}
}
for more details check this link: http://www.itworld2.com/ghowto.aspx?id=69
有关详细信息,请访问此链接:http://www.itworld2.com/ghowto.aspx?id = 69
#3
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Loadgridview();// its a correct
}// not Loadgridview() here if you load above error is occur
}
check it
#4
int i = 0;
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)GridView_AdminTags.Rows[i].Cells[0].FindControl("chkTag");
if (chk != null)
if (chk.Checked)
{
////.......;
}
i++;
}
i = 0;
#5
Jakob Answer will work if below line is used. Even one control only in the cell, index need to be 1 not 0
如果使用以下行,Jakob Answer将起作用。即使一个控件只在单元格中,索引也需要为1而不是0
CheckBox chk = row.Cells[0].Controls[1] as CheckBox;
Thank you Sam
谢谢山姆