ClientIDMode
控件中 asp:CheckBox
属性的用途是什么?我为此找到了值AutoID, Inherit, Predictable, and Static
。
主要是我在寻找如何在HTML中呈现?有人可以解释一下属性和值吗?
答案 0 :(得分:0)
这是MS如何计算.net控件名称本身的ID。 MSDN
由于ASP.net页面在服务器上放在一起并发送到客户端MS将基于可变数量的条件命名id,它们是否在主页面中,是否在用户控制器中,转发器中, 等等。
由于你不能拥有重复的id,你如何处理放在转发器内的.net控件?你需要有一个命名算法。有些人愚蠢地使用渲染的ID(ct100_ *)而不是使用getElementID来通过javascript操作元素。我不知道为什么他们暴露这些算法而不只是说一切都将是1算法。也许有人可以解释为什么他们暴露了不同的算法。
答案 1 :(得分:0)
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>