急问一个gridview下的checkbox奇怪的问题

xuhaoumsl 2008-07-04 12:29:39
我在gridview里面有一个checkbox, 我选中的时候为什么checked属性总是false

代码如下

<asp:CheckBox ID="ckAutoRenew" runat="server" />

在gridview的OnRowDataBound有如下代码

protected void gvPackage_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (gvPackage.Rows.Count > 0)
{
CheckBox ck = (CheckBox)e.Row.FindControl("ckAutoRenew");
if (ck != null)
{
OrderDataSet.SPGetAStorePlanDetailsRow aStorePlanRow = OrderDB.GetStorePlanDetailsByStorePlanID((int)gvPackage.DataKeys[e.Row.RowIndex].Values[0]);
if (aStorePlanRow.bRealTime)
{

if (!aStorePlanRow.IsvchOTRenewNull() && aStorePlanRow.vchOTRenew == "After Fulfill")
{
ck.Visible = true;
ck.Enabled = true;
}
else
{
ck.Visible = false;
ck.Enabled = false;
}
}
else
{
ck.Visible = false;
ck.Enabled = false;

}
}
}

}


最后当我点击button的时候 根据checkbox 是否选中 作如下事情

CheckBox ck=(CheckBox)gvPackage.Rows[iNumber[j]].FindControl("ckAutoRenew");
if (ck != null)
{
if (ck.Checked)
aOrderPlanRow.bCurrentMonthlyPlan = true;
else
aOrderPlanRow.bCurrentMonthlyPlan = false;

}
else
{

aOrderPlanRow.bCurrentMonthlyPlan = false;

}
control 找的也是对的 但是为什么选中后仍然ck.Checked=false? 奇怪 哪里不对呢 ?
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxmonsy 2008-07-07
  • 打赏
  • 举报
回复
我这个是RadioBotton的.你参照下,重写个看看.

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = ((GridViewRow)((Button)e.CommandSource).NamingContainer).RowIndex;
RadioButton RadioButton1 = GridView1.Rows[index].FindControl("RadioButton1") as RadioButton;

if (RadioButton1.Checked)
{
Name = RadioButton1.Text;
}
int id =int.Parse( GridView1.DataKeys[index].Value.ToString());


}

dengchenlu 2008-07-07
  • 打赏
  • 举报
回复
页面加载有没有
if(!IsPostBack)
{}
namhyuk 2008-07-07
  • 打赏
  • 举报
回复
我看不懂这里:gvPackage.Rows[iNumber[j]], 检查哪些行的CheckBox被选中应该是一行一行检查吧?

如:
foreach(GridViewRow row in gvPackage.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("ckAutoRenew");
AOrderPlanRow aOrderPlanRow = ((DataRowView)row.DataItem).Row as AOrderPlanRow;
aOrderPlanRow.bCurrentMonthlyPlan = (cb != null & cb.Checked) ? true : false;
//...
}
xuhaoumsl 2008-07-04
  • 打赏
  • 举报
回复
我看了阿 没有对ck操作的语句 重新绑定gridview?
belldandy11 2008-07-04
  • 打赏
  • 举报
回复
逐句跟踪执行一下,看看哪步又把他设回去了.或者你没重新绑定gridview

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧