1

如何在不触发回发的情况下更改 asp.net 下拉列表的选定值?

我尝试将自动回发设置为 false,但在下拉列表中选择另一个选项时,选项上的“已选择”属性不会更改。

我已经看到了一些使用更新面板的示例,并且我已经成功尝试过,但是由于页面上的其他 javascript 和 jquery 函数,我无法使用它而不会在其他函数上遇到很多麻烦..

代码更新

    <asp:DropDownList ID="USERS" DataTextField="NAME" DataValueField="ID" runat="server"
                     Width="150px">
    </asp:DropDownList>
4

2 回答 2

0

尝试使用带有 asp:UpdatePanel 和 asp:updateprogress 标签的 AJAX。如果您已经尝试过,请向我们展示您的代码,以便我们提供帮助。

于 2012-07-18T05:37:50.533 回答
0

Lemme 给你详细解释...

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
     <ContentTemplate>
 <asp:DropDownList ID="DropDownList1" runat="server">
 </asp:DropDownList>
     </ContentTemplate>

并根据需要添加更新进度

<asp:UpdateProgress ID="UpProDisp" runat="Server" AssociatedUpdatePanelID="UpdatePanel1" OnLoad="UpdatePanelProdDisp_Load">
          <ProgressTemplate>
          </ProgressTemplate>
 </asp:UpdateProgress>

还添加模态弹出窗口

<asp:ModalPopupExtender ID="modalExtender" runat="server" TargetControlID="UpProDisp" PopupControlID="Panel1" DropShadow="true" BackgroundCssClass="modalBackground">
</asp:ModalPopupExtender>
<asp:Panel ID="Panel1" runat="server" CssClass="modalExtender">
     <img alt="Processing" src="../Images/Processing.jpg" />
       <br />
     <asp:Label ID="lblProcessing" runat="server" Text="Processing..." CssClass="TitleBar"></asp:Label>
  </asp:Panel>

使用以下 javascript 代码...

<script type="text/javascript">
 Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(showPopup);
 Sys.WebForms.PageRequestManager.getInstance().add_endRequest(hidePopup);

function showPopup(sender, args) {
var ModalControl = '<%= modalExtender.ClientID %>';
$find(ModalControl).show();
}

function hidePopup(sender, args) {
var ModalControl = '<%= modalExtender.ClientID %>';
$find(ModalControl).hide();
} 
</script>

告诉我它是否有效。

于 2012-07-18T05:52:54.113 回答