我在GridView中放置了一个CheckBox,还有2个按钮,一个按钮是全选删除记录的,一个是重置用户的密码的,重置密码只能更改一个用户的密码,所以,要怎么做才能当选择两个或以上的用户的提示只能选择一个用户.我现在下面代码会更改所有选中用户密码的.
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
if (isChecked)
{
string UserID = ((Label)GridView1.Rows[i].FindControl("Label1")).Text;
.....
.....
------------------------------------
怎样加入判断语句啊?
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
if (isChecked)
{
string UserID = ((Label)GridView1.Rows[i].FindControl("Label1")).Text;
.....
.....
------------------------------------
怎样加入判断语句啊?
当按重置密码时,就不可以按,给出错误提示。
就拿你的代码来说,你可以先统计现在有多少个选中啊。如果多于1个,则弹出错误提示。否则才做重置不就行了。int numOfChecked = 0;
int indexOfChecked = -1;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
if (isChecked)
{
numOfChecked ++; indexOfChecked = i;
……if( numOfChecked == 1 ){
//处理选中的列,选中的列为:
GridView1.Rows[indexOfChecked];
}else{
// 弹出错误信息
}
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
if (isChecked)
{
count++;
}
}
if(count>1)
{
//处理
}
又花了半个钟头,终于解决了,刚才运行时 在if (numOfChecked == 1)下面没有再加
for (int i = 0; i < this.GridView1.Rows.Count; i++) ....
导致有时就重置不了密码,有时就重置了全部密码,现在共享一下代码:
int numOfChecked = 0;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
if (isChecked)
{
numOfChecked++;
}
}
if (numOfChecked == 1)
{
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
if (isChecked)
{
.... 更改密码代码....
}
}
}
else
{
Response.Write("<Script language=JavaScript>alert('您只能选择一个用户!');</Script>");
return;
}