.aspx
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="chkSelect" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
.cs
//方式一
private void Button4_Click(object sender, System.EventArgs e)
{
bool noChecked = true;
foreach(DataGridItem dgi in DataGrid1.Items)
{
CheckBox cb=(CheckBox)dgi.FindControl("chkSelect");
if(cb.Checked)
{//如果cb被选中的话,执行删除操作
Response.Write("<script>alert('成功!')</script>");
noChecked = false;
}
}
if (noChecked == true)
{
Response.Write("<script>alert('您没有选择要删除的项目!')</script>");
}
}
//方式二
private void Button4_Click(object sender, System.EventArgs e)
{
for(int i=0;i<DataGrid1.Items.Count;i++)
{
CheckBox cb=(CheckBox)DataGrid1.Items[i].FindControl("ckbSelect");
if (cb!=null)
{
if(cb.Checked)
{
Response.Write("<script>alert('成功!')</script>");
}
else
{
Response.Write("<script>alert('您没有选择要删除的项目!')</script>");
}
}
}在选择了CheckBox后,方式一和方式二都不出现"成功"提示,也就是cb为空,或者没选.不知道是怎么回事呀!请指点一下.十分感谢!
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="chkSelect" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
.cs
//方式一
private void Button4_Click(object sender, System.EventArgs e)
{
bool noChecked = true;
foreach(DataGridItem dgi in DataGrid1.Items)
{
CheckBox cb=(CheckBox)dgi.FindControl("chkSelect");
if(cb.Checked)
{//如果cb被选中的话,执行删除操作
Response.Write("<script>alert('成功!')</script>");
noChecked = false;
}
}
if (noChecked == true)
{
Response.Write("<script>alert('您没有选择要删除的项目!')</script>");
}
}
//方式二
private void Button4_Click(object sender, System.EventArgs e)
{
for(int i=0;i<DataGrid1.Items.Count;i++)
{
CheckBox cb=(CheckBox)DataGrid1.Items[i].FindControl("ckbSelect");
if (cb!=null)
{
if(cb.Checked)
{
Response.Write("<script>alert('成功!')</script>");
}
else
{
Response.Write("<script>alert('您没有选择要删除的项目!')</script>");
}
}
}在选择了CheckBox后,方式一和方式二都不出现"成功"提示,也就是cb为空,或者没选.不知道是怎么回事呀!请指点一下.十分感谢!
如果我猜对的话,你的方法一会显示 "您没有选择要删除的项目!"的对话框
而你的方法而则什么有没有显示。
方法一会显示 "您没有选择要删除的项目!"的对话框
方法二而则什么有没有显示。
不知道.为什么会出现这种情况.
在网上找了好多资料,都没看到和我相同的问题..如果谁有好用的C#代码给个也行.
十分感谢呀!!
态,没有选中……可以设计一下看看,断点设在PAGELOAD里,应该是这个原因。
并非没有状态记录,CHECKBOX选中状态在服务器回发后依然选中,由于Viewstate保持了状态。
其实由于数据源的重复绑定导致CHECKBOX状态被初始化!
改进办法就是把数据源的绑定代码放在
if(!IsPostBack)
{
}