使用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>发布于 2013-06-07 19:10:34
将HiddenField添加到您的页面。然后在updateCallBackReason()函数上对隐藏字段调用update document.getElementById('<%=dropCallbackReason.ClientID%>').selectedIndex。在表单加载时,您可以设置隐藏字段中的dropCallbackReason选定索引。
否则,您可以使用updatepanel来实现此逻辑。也可以使用updatepanel,hiddenfield,javascript __DoPostBack()调用。在谷歌上搜索详细信息。然后在updatepanel上将触发器设置为first dropdown。
发布于 2013-06-07 18:47:54
JavaScript是一种客户端语言,所以如果您执行PostBack,您将转到服务器端。如果您希望下拉值为"default",则需要在服务器端(onLoad)定义它。
https://stackoverflow.com/questions/16982128
复制相似问题