Как получить доступ к значению скрытого поля asp из UserControl в Javascript (getElementByID не работает)

Так что я застрял, пытаясь получить доступ к значению HiddenField в моем UserControl из моего JavaScript.

В моем пользовательском контроле у ​​меня есть:

<asp:HiddenField ID="HiddenField1" runat="server" />  

Этот пользовательский элемент управления используется в нескольких местах и ​​иногда несколько раз на одной и той же странице, поэтому ClientIDMode = Static не является опцией, и он должен быть runat = server, так как мне также необходим доступ к нему в коде позади.

В моем JavaScript я пробовал следующее:

document.getElementById('<%= HiddenField1.ClientID %>');
document.getElementById('HiddenField1');
$find("<%= HiddenField1.ClientID %>");

Все они возвращают ноль. Я видел ряд "решений", предлагающих

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">

Значение устанавливается в коде через другие функции.

РЕДАКТИРОВАТЬ 2: Обобщенный мой пример кода

2 ответа

Решение

Я не мог найти способ заставить эту работу работать со скрытым полем, поэтому я прогнулся и просто изменил свой объект на asp:Label с CSSClass и сохранил значение в свойстве text.

Не лучшее решение, которое я знаю, но если у кого-то есть лучшее предложение, пожалуйста, дайте мне знать.

В коде может быть ваш код выглядит следующим образом

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>

Я надеюсь, что это поможет вам.

Другие вопросы по тегам