我知道在ASP.NET的下一个版本中,我们最终能够在System.Web控件上设置clientids而不用框架以准智能的方式为我们做这件事,例如:
id="ctl00__loginStatus__profileButton"
Run Code Online (Sandbox Code Playgroud)
有没有人知道一个好的方法同时强制上面的id类似的东西
id="profileButton"
Run Code Online (Sandbox Code Playgroud)
主要原因是在动态地向页面添加控件时操纵jQuery中的clientids.我能看到的问题是改变ID会破坏Viewstate吗?
您必须使用该ClientIDMode属性:
<asp:xxxx ID="fileselect" runat="server" ClientIDMode="Static"/>
Run Code Online (Sandbox Code Playgroud)
我倾向于动态生成处理此问题的javascript方法.您可以在标记或代码后面执行此操作,例如:
<script language="javascript" type="text/javascript">
function doXYZ()
{
$("#" + getListBoxId()).css(...)
}
function getListBoxId()
{
return "<%=this.myListBox.ClientId>";
}
</script>
Run Code Online (Sandbox Code Playgroud)
您还可以在后面的代码中构建函数并注册它们.
编辑
几个月前我需要修复一些服务器控件的id,我设法破解它,我在这里描述了我的方法.
基本上,您需要将控件放在命名容器(如用户控件)中,然后覆盖几个属性,这些属性会阻止子控件获取其唯一ID.
| 归档时间: |
|
| 查看次数: |
3189 次 |
| 最近记录: |