Asp.net 母版页内带有runat=server的html标记
Masterpage.cs无法识别带有Asp.net 母版页内带有runat=server的html标记,asp.net,master-pages,Asp.net,Master Pages,Masterpage.cs无法识别带有runat=server的html标记 例如,在母版页中: <input type="checkbox" runat="server" id="ckb" /> 使用ckb 当前上下文中不存在名称“ckb” 更新输入在中继器的内 如何找到他并更改他的属性?您为控件提供的id是ckb,而不是checkAll ckb将在代码隐藏中被识别。如果您在基于模板的控件(例如)中使用控件,那么您将无法直接访问控件,就像您在页面/用户控件/母版页上直接放置
runat=server的html标记
例如,在母版页中:
<input type="checkbox" runat="server" id="ckb" />
使用ckb
当前上下文中不存在名称“ckb”
更新输入在中继器的
内
如何找到他并更改他的属性?您为控件提供的id
是ckb
,而不是checkAll
ckb
将在代码隐藏中被识别。如果您在基于模板的控件(例如
)中使用控件,那么您将无法直接访问控件,就像您在页面/用户控件/母版页上直接放置控件一样
相反,您需要在模板控件本身上使用FindControl
例如,如果设置一个ItemDataBind
事件处理程序,则可以执行以下操作
protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
HtmlInputCheckBox chk = (HtmlInputCheckBox)e.Item.FindControl("chk");
}
}
您能提供导致错误的代码行吗?这是我的第一个想法(以及删除之前的注释)。。。但OP实际上说的是“当使用ckb时”,所以我愿意让他们对这一点有所怀疑one@freefaller-可能,但错误消息肯定表明情况并非如此。我发现了问题,输入位于中继器标头内,如何找到他并更改其属性?@baaroz-(HtmlInputCheckBox)e.FindControl(“ckb”)