【问题标题】:ASP.net DropDownList Inside Modal Bootstrap模态引导程序内的 ASP.net DropDownList
【发布时间】:2013-12-05 00:19:02
【问题描述】:

我在这里遇到问题,在我的模态窗口中得到了如下所示的 DropDownList

<div class="modal-body">
  <div class="row">
     <div class="col-lg-8">
        <div class="form-horizontal" role="form">
          <div class="form-group that">
              <asp:Label ID="lblBrand" CssClass="col-sm-2 this" runat="server">Brand</asp:Label>
              <div class="col-sm-5">
                  <asp:DropDownList BackColor="#FFFFFF" CssClass="ddl" runat="server" ID="dropDownListVendor" DataValueField="brandID" DataTextField="brandName" AutoPostBack="true">
                       <asp:ListItem Selected="True" Text="Choose a Brand..">
                  </asp:DropDownList>

当我在 DropDownList 中选择项目时,模态窗口将自动关闭。 如何预防?

【问题讨论】:

    标签: asp.net vb.net twitter-bootstrap drop-down-menu modal-dialog


    【解决方案1】:

    DropDownList 配置为AutoPostBack="true"

    因此,只要 DropDownList 的选择发生更改,页面就会回传到服务器。

    如果您不希望 DropDownList 回发到服务器,请设置AutoPostBack="false"

    除此之外,没有足够的信息来回答您的问题。

    【讨论】:

    • 谢谢。你解决了我的问题,因为我之前设置了 AutoPostBack = "true"。 :)
    【解决方案2】:

    如果你使用 UpdatePanels,你可以使用AutoPostBack="true"

    请看下面的例子:

    (我使用了 2 个 UpdatePanel 进行演示)

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim sb As New System.Text.StringBuilder()
        sb.Append("<script type='text/javascript'>")
        sb.Append("$('#Div1').modal('show');")
        sb.Append("</script>")
        ScriptManager.RegisterClientScriptBlock(Me, Me.[GetType](), "RunModalScript", sb.ToString(), False)
    End Sub
    
     <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <Triggers>
                </Triggers>
                <ContentTemplate>
                    <asp:Button ID="Button1"
                        runat="server"
                        CssClass="btn btn-primary"
                        Text="Open" />
                </ContentTemplate>
            </asp:UpdatePanel>
    
            <div class="modal fade" id="Div1" data-backdrop="static">
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-body">
    
                            <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                                <Triggers>
                                </Triggers>
                                <ContentTemplate>
    
                                    <div class="modal-header">
                                        <asp:DropDownList ID="test" AutoPostBack="true" runat="server">
                                            <asp:ListItem Text="Item 1"></asp:ListItem>
                                            <asp:ListItem Text="Item 2"></asp:ListItem>
                                            <asp:ListItem Text="Item 3"></asp:ListItem>
                                        </asp:DropDownList>
                                </ContentTemplate>
                            </asp:UpdatePanel>
    
                        </div>
                    </div>
                </div>
            </div>
    

    在我的应用程序中,当用户从列表中选择一个选项时,我必须做一些额外的事情。

    还要确保第二个 UpdatePanel 位于 &lt;div class="modal-body"&gt; 内, UpdatePanel 阻止页面刷新(并隐藏 Modal)。

    这是一个老问题,但这是我最近遇到的一个问题,我想分享我的解决方案。

    最好的问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多