ClientIDMode属性在asp:CheckBox控件中的用途是什么?我为它找到了AutoID, Inherit, Predictable, and Static值。
我主要是在寻找,它是如何在HTML中呈现的?,有人能解释一下这个属性和值吗?
发布于 2014-08-12 12:31:33
这是MS计算.net控件名称本身的ID的方法。MSDN
由于ASP.net页面放在服务器上并发送到客户端MS将根据可变的条件命名ids,它们是在母版页中,是在用户控制器中,还是在中继器中等等。
由于您不能拥有重复的is,那么如何处理放置在中继器中的.net控件呢?你需要有一个命名算法。有些人愚蠢地使用呈现的ID (ct100_*),而不是使用getElementID通过javascript操作元素。我不知道他们为什么公开这些算法,而不是仅仅说所有的东西都是1算法。也许有人能回答他们为什么公开不同的算法。
发布于 2014-08-12 12:36:57
id生成示例:
网页表格:
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
lstMain.DataSource = new string[] { "a", "b" };
lstMain.DataBind();
}
</script>
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:ListView ID="lstMain" runat="server">
<ItemTemplate>
<asp:CheckBox ID="chkFour" runat="server" ClientIDMode="AutoID" />
<asp:CheckBox ID="chkFive" runat="server" ClientIDMode="Predictable" />
<asp:CheckBox ID="chkSix" runat="server" ClientIDMode="Static" />
</ItemTemplate>
</asp:ListView>
</asp:Content>结果:
<input id="ctl00_ContentPlaceHolder1_lstMain_ctrl0_chkFour" type="checkbox" name="ctl00$ContentPlaceHolder1$lstMain$ctrl0$chkFour" />
<input id="ctl00_ContentPlaceHolder1_lstMain_ctrl0_chkFive_0" type="checkbox" name="ctl00$ContentPlaceHolder1$lstMain$ctrl0$chkFive" />
<input id="chkSix" type="checkbox" name="ctl00$ContentPlaceHolder1$lstMain$ctrl0$chkSix" />
<input id="ctl00_ContentPlaceHolder1_lstMain_ctrl1_chkFour" type="checkbox" name="ctl00$ContentPlaceHolder1$lstMain$ctrl1$chkFour" />
<input id="ctl00_ContentPlaceHolder1_lstMain_ctrl1_chkFive_1" type="checkbox" name="ctl00$ContentPlaceHolder1$lstMain$ctrl1$chkFive" />
<input id="chkSix" type="checkbox" name="ctl00$ContentPlaceHolder1$lstMain$ctrl1$chkSix" />将id传递给JS:
<script type="text/javascript">
var autoId = '<%=someControl.ClientID%>';
var predictableId = '<%=someControl.ClientID%>';
var staticId = 'someControl';
</script>https://stackoverflow.com/questions/25264059
复制相似问题