AutoPostBack清除我的dropdownlist变量

时间:2013-06-07 10:39:29

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

使用javascript和asp.net。 AutoPostBack看起来正在清除变量'callBackReason',我通过下拉列表中的javascript声明了它。不幸的是我需要变量在Javascript中。 有没有办法在AutoPostBack之后保持声明?

非常感谢。

<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() {
    callBackReason = document.getElementById('<%=dropCallbackReason.ClientID%>').options[document.getElementById('<%=dropCallbackReason.ClientID%>').selectedIndex].text;
    return callBackReason;
        }
</script>

2 个答案:

答案 0 :(得分:0)

JavaScript是一种客户端语言,所以如果你做一个PostBack,你会去服务器端。 如果您希望下拉值为“default”,则需要在服务器端(onLoad)定义它。

答案 1 :(得分:0)

在页面中添加HiddenField。然后在updateCallBackReason()函数上调用update document.getElementById('&lt;%= dropCallbackReason.ClientID%&gt;')。selectedIndex到隐藏字段。在表单加载时,您可以从hiddenfield设置dropCallbackReason选择的索引。

否则,您可以使用updatepanel来实现此逻辑。使用updatepanel,hiddenfield,javascript __DoPostBack()也可以调用。在Google上进行细分搜索。然后在updatepanel上将触发器设置为第一个下拉列表。