在MasterPage中使用runat = server的html标记

时间:2012-07-31 15:49:00

标签: asp.net master-pages

Masterpage.cs无法识别runat=server

的html标记

例如在Masterpage中:

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

在使用ckb

时给出了代码隐藏中的后续错误
  

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

更新输入位于转发器的<HeaderTemplate>

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

2 个答案:

答案 0 :(得分:1)

如果您在基于Template的控件中使用控件(例如<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");
  }
}

答案 1 :(得分:0)

您提供控件的idckb,而不是checkAll

ckb将在后面的代码中被识别。