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

Так что я застрял, пытаясь получить доступ к значению 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">

Значение устанавливается в коде с помощью других функций.

EDIT2: Обобщенный пример моего кода

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

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

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>

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

0 голосов
/ 22 мая 2018

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

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

...