【问题标题】:CheckBox ID is unable to be found无法找到复选框 ID
【发布时间】:2014-06-26 01:56:56
【问题描述】:

我想在发现它已在数据库中选中后选中一个复选框。我正在尝试这个:

string chkboxbit = String.Empty;
CheckBox cb = new CheckBox();
chkboxbit = "ct100$ContentPlaceHolder1_chk" + item + "" + i;
cb = (CheckBox)Page.FindControl(chkboxbit.ToString());
cb.Checked = false;

但我在调试时得到 cb 值 null。

【问题讨论】:

  • 您确定该控件在您的页面中?
  • 与 item & i 连接后 chkboxbit 的值是否正确??
  • 请编辑您的帖子并添加 HTML 标记以及 chkboxbit 帖子连​​接的值。
  • 我认为您正在寻找错误的控制方式。你想做什么?

标签: c# asp.net


【解决方案1】:

我知道了...而且效果很好...

chkboxbit = "chk" + item + "" + i;
ContentPlaceHolder cph = (ContentPlaceHolder)this.Master.FindControl("ContentPlaceHolder1");
cb = ((CheckBox)cph.FindControl(chkboxbit));
if (cb != null)
    cb.Checked = false;

感谢大家的努力。 谢谢京岛丸。

【讨论】:

    【解决方案2】:

    当你这样做时:

    chkboxbit = "ct100$ContentPlaceHolder1_chk" + item + "" + i;
    

    您似乎将 HTML 中的 ID 误认为是您在 .ASPX 页面中提供的 ID。

    ct1000 通常来自母版页。我敢打赌你只需要这样做:

    chkboxbit = "ContentPlaceHolder1_chk" + item + i.ToString();
    

    应该会找到你的控件。

    【讨论】:

    • 嘿阿达玛,它仍然无法正常工作。在运行页面时,检查元素后,id 相同,名称变为 ct100$ContentPlaceHolder1_chkProject4。这是我的 aspx 代码:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    相关资源
    最近更新 更多