我正在使用一些HTML控件运行一些Java脚本。一切正常。
除非我将runat =“ server”属性添加到html控件中,所以我可以在后面的代码中访问它,否则Java脚本功能将无法正常工作。这是平常的事吗?是否可以在Java脚本中使用runat =“ server”属性来解决?
或者如何使用run at server属性在WITHOUT后面的代码中访问Html控件?
困惑。
最佳答案
这很可能是因为您的标记看起来像这样:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div runat="server" id="myDiv">
</div>
</asp:Content>
即您使用的是MasterPage或其他用作
INamingContainer
的内容。这将导致在标记中写出的ID看起来像这样:<div>
<div id="ContentPlaceHolder1_myDiv">
</div>
</div>
如果您使用的是asp.net 4,则可以通过添加
myDiv
来更改clientidmode="Static"
的标记,然后您将获得:<div>
<div id="myDiv">
</div>
</div>
表示您的JavaScript将再次正常运行。如果您使用的是asp.net的早期版本,则需要按照SHAKKIR SHABBIR的建议进行操作,并使用
<%=myDiv.ClientId%>
引用JavaScript中的元素,以便获得asp.net生成的ID的“重命名”版本。