2013-06-11 3 views
1

У меня есть DropDownList, и я ищу, чтобы использовать текст выбранного индекса в Javascript String, объявив его в скрытом поле, а затем объявив через C#, чтобы переменная Javascript не была очищена, если страница перезагружается.Объявление переменной javascript с C#

Я хотел бы получить совет относительно того, являются ли скрытые поля правильной идеей, а также как объявить значение скрытого поля как переменную Javascrpt.

<asp:DropDownList runat="server" ID="dropCallbackReason" SelectedIndexChanged="riskSeverityDropDown_SelectedIndexChanged" onChange="javascript:updateCallBackReason()" ClientIDMode="Static" > 
     <asp:ListItem Text="-- Select Reason --" Value="1"></asp:ListItem> 
     <asp:ListItem Text="Booking" Value="6"></asp:ListItem> 
     <asp:ListItem Text="Discussing" Value="11"></asp:ListItem> 
     <asp:ListItem Text="Contract" Value="45"></asp:ListItem> 
</asp:DropDownList> 
<asp:HiddenField id="ValueHiddenField" value="" runat="server"/> 

<script type="text/javascript"> 
     function updateCallBackReason() { 
     var ddlReason = document.getElementById("<%=dropCallbackReason.ClientID%>"); 
     callBackReasonPreSring = ddlReason.options[ddlReason.selectedIndex].text; 
     callBackReason = callBackReasonPreSring.replace(/ /g, ''); 
     return callBackReason; 
     } 
     $(document).ready(function() { updateCallBackReason() }); 
</script> 

Большое спасибо,

ответ

2

Используя скрытое поле не является необычным. Я не вижу, где вы пишете это в своем коде.

+0

Спасибо за ваш ответ, в настоящее время он не пишет HiddenField, значение просто сохраняется в JS Var. Я хотел дважды проверить правильность использования скрытого поля, прежде чем смотреть в него – wilsonlego

2

Ваш лучший вариант - сохранить ваши значения в Session вместо скрытого поля. Это гораздо более чистый подход.

Вы можете сделать это двумя способами: на стороне сервера или на стороне клиента.

Что касается серверной стороне Session, это довольно просто, а на стороне клиента Session не обычно, и вам нужно будет использовать внешние библиотеки, как этот здесь: https://github.com/AlexChittock/JQuery-Session-Plugin

Другой вариант заключается в использовании Cookies.

//Set cookie 
$.cookie("somevar", "5"); 

// Get cookie 
$.cookie("somevar") 

//Delete cookie 
$.cookie("somevar", null); 

Надеюсь, это поможет.

Смежные вопросы