如何从 Javascript 中的 UserControl 访问 asp 隐藏字段值(getElementByID 不起作用)
How to access asp hiddenfield value from UserControl in Javascript (getElementByID not working)
所以我在尝试从 JavaScript.
访问我的 UserControl 中的 HiddenField 值时遇到了困难
在我的用户控件中我有:
<asp:HiddenField ID="HiddenField1" runat="server" />
此用户控件在多个地方使用,有时在同一页面上多次使用,因此 ClientIDMode = Static 不是一个选项,它必须是 runat = server,因为我也需要在后面的代码中访问它。
在我的 JavaScript 中,我尝试了以下方法:
document.getElementById('<%= HiddenField1.ClientID %>');
document.getElementById('HiddenField1');
$find("<%= HiddenField1.ClientID %>");
所有这些 return 无效。我看过很多 "solutions" 建议
document.getElementById('ctl00_ContentPlaceHolder1_HiddenField1')
但这显然会给可重用性带来问题。
编辑:
这样生成的html为:
<input type="hidden" name="ctl00$ctl00$MainContent$MainContent$$ctl00$SomeUserControl$someOtherUserControl1$HiddenField1" id="MainContent_MainContent_SomeRepeater_SomeUserControl_0_someOtherUserControl1_0_HiddenField1_0" value="353">
该值是通过其他函数在后面的代码中设置的。
EDIT2:概括了我的代码示例
我找不到一种方法来使它与隐藏字段一起工作,所以我屈服了,只是将我的对象更改为带有 CSSClass 的 asp:Label 并将值存储在文本 属性 中.
这不是我所知道的最佳解决方案,但如果有人有更好的建议请告诉我。
在后面的代码中,您的代码可能如下所示
public void test()
{
hdnvalue.Value = "Test";
//After assign the value you should call client side function
ClientScript.RegisterStartupScript(GetType(), "Script", "<script
language='javascript'>gethidden()</script>", false);
}
在javascript函数中应该这样使用
<script language="javascript" type="text/javascript">
function gethidden() {
var hdn = document.getElementById('<%=hdnvalue.ClientID%>');
alert(hdn.value);
}
</script>
希望对你有所帮助
所以我在尝试从 JavaScript.
访问我的 UserControl 中的 HiddenField 值时遇到了困难在我的用户控件中我有:
<asp:HiddenField ID="HiddenField1" runat="server" />
此用户控件在多个地方使用,有时在同一页面上多次使用,因此 ClientIDMode = Static 不是一个选项,它必须是 runat = server,因为我也需要在后面的代码中访问它。
在我的 JavaScript 中,我尝试了以下方法:
document.getElementById('<%= HiddenField1.ClientID %>');
document.getElementById('HiddenField1');
$find("<%= HiddenField1.ClientID %>");
所有这些 return 无效。我看过很多 "solutions" 建议
document.getElementById('ctl00_ContentPlaceHolder1_HiddenField1')
但这显然会给可重用性带来问题。
编辑: 这样生成的html为:
<input type="hidden" name="ctl00$ctl00$MainContent$MainContent$$ctl00$SomeUserControl$someOtherUserControl1$HiddenField1" id="MainContent_MainContent_SomeRepeater_SomeUserControl_0_someOtherUserControl1_0_HiddenField1_0" value="353">
该值是通过其他函数在后面的代码中设置的。
EDIT2:概括了我的代码示例
我找不到一种方法来使它与隐藏字段一起工作,所以我屈服了,只是将我的对象更改为带有 CSSClass 的 asp:Label 并将值存储在文本 属性 中.
这不是我所知道的最佳解决方案,但如果有人有更好的建议请告诉我。
在后面的代码中,您的代码可能如下所示
public void test()
{
hdnvalue.Value = "Test";
//After assign the value you should call client side function
ClientScript.RegisterStartupScript(GetType(), "Script", "<script
language='javascript'>gethidden()</script>", false);
}
在javascript函数中应该这样使用
<script language="javascript" type="text/javascript">
function gethidden() {
var hdn = document.getElementById('<%=hdnvalue.ClientID%>');
alert(hdn.value);
}
</script>
希望对你有所帮助