0

Masterpage.cs 无法识别带有runat=server

例如在 Masterpage 中:

 <input type="checkbox" runat="server" id="ckb" />

使用时在代码隐藏中给出以下错误ckb

当前上下文中不存在名称“ckb”

更新输入在<HeaderTemplate>中继器内

我怎样才能找到他并改变他的属性?

4

2 回答 2

1

如果您在Template基于控件(例如 a <asp:Repeater>)中使用控件,那么您将无法直接访问控件,就像直接放置在页面/用户控件/母版页上的控件一样。

相反,您需要FindControl在模板控件本身上使用。

例如,如果您设置一个ItemDataBind事件处理程序,您将能够执行以下操作...

protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
  if(e.Item.ItemType == ListItemType.Header)
  {
    HtmlInputCheckBox chk = (HtmlInputCheckBox)e.Item.FindControl("chk");
  }
}
于 2012-07-31T16:00:20.753 回答
0

id你给予的控制权是,ckb不是checkAll

ckb会在后面的代码中识别。

于 2012-07-31T15:54:15.447 回答