用c#声明javascript变量

时间:2013-06-11 11:55:11

标签: c# javascript asp.net drop-down-menu hiddenfield

我有一个DropDownList,我希望在Javascript字符串中使用所选索引的文本,方法是在隐藏字段中声明它,然后通过C#声明,以便在页面重新加载时不清除Javascript变量。 / p>

我想知道一些关于隐藏字段是否正确的建议,以及如何将隐藏字段值声明为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 :(得分:2)

使用隐藏字段并不罕见。我不会在你的代码中看到你在哪里写它。

答案 1 :(得分: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);

希望这有帮助。