C# 将选定的dropDownList文本声明为hiddenfield,以便可以与JS一起使用

C# 将选定的dropDownList文本声明为hiddenfield,以便可以与JS一起使用,c#,javascript,asp.net,drop-down-menu,hiddenfield,C#,Javascript,Asp.net,Drop Down Menu,Hiddenfield,我需要将dropdownlist'dropCallbackReason'的'text string'声明到的'ValueHiddenField'ID中,这样我就可以将其用作javascript变量 问题是上面的另一个下拉列表有一个自动回发,用于清除javascript变量,因此我知道它需要通过后端的页面加载来声明。我知道我很接近,但有人有什么想法吗 <asp:DropDownList AutoPostBack="true" OnSelectedIndexChanged="dropVehic

我需要将dropdownlist'dropCallbackReason'的'text string'声明到的'ValueHiddenField'ID中,这样我就可以将其用作javascript变量

问题是上面的另一个下拉列表有一个自动回发,用于清除javascript变量,因此我知道它需要通过后端的页面加载来声明。我知道我很接近,但有人有什么想法吗

<asp:DropDownList AutoPostBack="true" OnSelectedIndexChanged="dropVehicleRequest_Changed" runat="server" ID="dropVehicleRequest"></asp:DropDownList>

<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="2"></asp:ListItem>
 <asp:ListItem Text="Discussing" Value="3"></asp:ListItem>
 <asp:ListItem Text="Contact" Value="4"></asp:ListItem>
</asp:DropDownList>
<asp:hiddenfield id="ValueHiddenField" value="test" runat="server"/>

<script type="text/javascript">
        function updateCallBackReason() {
        callBackReason = document.getElementById('<%=ValueHiddenField.ClientID %>').value;
        return callBackReason;
        }
</script>

当您向客户端发送要呈现的页面的新版本时,JS变量将通过回发重置。由于ASP.NET在跟踪控件状态方面做得很好,您是否可以更改JS以获取当前选定的DDL值,而不是通过服务器发送?比如说

<asp:DropDownList AutoPostBack="true" OnSelectedIndexChanged="dropVehicleRequest_Changed" runat="server" ID="dropVehicleRequest"></asp:DropDownList>

<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="2"></asp:ListItem>
 <asp:ListItem Text="Discussing" Value="3"></asp:ListItem>
 <asp:ListItem Text="Contact" Value="4"></asp:ListItem>
</asp:DropDownList>

<script type="text/javascript">
        function updateCallBackReason() {
            var ddlReason = document.getElementById("<%=dropCallbackReason.ClientID%>");
            callBackReason = ddlReport.options[ddlReason.selectedIndex].text;
            return callBackReason;
        }
</script>