AutoPostBack清除我的下拉列表变量

AutoPostBack clears my dropdownlist variable

本文关键字:变量 下拉列表 我的 清除 AutoPostBack      更新时间:2023-09-26

使用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>

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

否则你可以使用updatepanel来实现这个逻辑。使用updatepanel, hiddenfield, javascript __DoPostBack()调用也。在谷歌上搜索详情。然后在updatepanel上将触发器设置为第一个下拉列表

JavaScript是一种客户端语言,所以如果您执行PostBack操作,您将转到服务器端。如果你想让下拉值为"default",你需要在服务器端(onLoad)上定义它。