【发布时间】:2014-10-12 04:46:42
【问题描述】:
我尝试在选定的复选框等于3时启用GridView中的按钮。
我用过这段代码,但是GridView中的按钮总是被禁用,为什么?
你能帮帮我吗?
感谢您的关注。
int count;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
if (count == 3)
{
btn.Enabled = true;
}
else
{
btn.Enabled = false;
}
}
}
protected void btn_Click(object sender, EventArgs e)
{
string strname = string.Empty;
string strnamesplit = string.Empty;
count = 0;
foreach (GridViewRow gvrow in GridView1.Rows)
{
HiddenField hiddenField = (HiddenField)gvrow.FindControl("HiddenField1");
CheckBox chk = (CheckBox)gvrow.FindControl("cb");
if (chk != null & chk.Checked)
{
strname += hiddenField.Value + ',';
count++;
}
}
strname = strname.Trim(",".ToCharArray());
Response.Write("Selected UserNames: <b>" + strname + "</b><br /><br />");
string[] words = strname.Split(',');
foreach (string word in words)
{
Response.Write(word + "<br />");
}
Response.Write(count.ToString() + "<br />");
}
<asp:CheckBox ID="cb" runat="server" AutoPostBack="true" />
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("id")%>' />
<asp:Button runat="server" ID="btn" Text="Enviar" OnClick="btn_Click" Enabled="false" />
【问题讨论】:
-
看起来您每次单击按钮时都将计数设置为 0...是否不应该从 page.load 方法维护该变量?
-
page.load 方法不维护变量计数