【问题标题】:Declaring javascript variable with c#用c#声明javascript变量
【发布时间】:2013-06-11 11:55:11
【问题描述】:

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

我想要一些关于隐藏字段是否正确的建议,以及如何将隐藏字段值声明为 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>

非常感谢,

【问题讨论】:

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


    【解决方案1】:

    使用隐藏字段并不罕见。不过,我看不到您在代码中写入它的位置。

    【讨论】:

    • 感谢您的回复,目前它没有写入 HiddenField,该值只是存储在 JS Var 中。我想在调查之前仔细检查隐藏字段的正确使用
    【解决方案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);
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多