如何防止从 dopostback 关闭引导模式?

Posted

技术标签:

【中文标题】如何防止从 dopostback 关闭引导模式?【英文标题】:How can I prevent closing of bootstrap modal from dopostback? 【发布时间】:2018-05-11 14:26:23 【问题描述】:

我的问题是当我选择任何单选按钮列表时,模式窗口将被关闭。我使用了 javascript 更改事件,然后回发了 asp rbl 控制器。 实际上,我的整个代码都在更新面板中。请告诉我防止此问题的技巧或方法。在此先感谢您。

javascript & aspx

$('#<%=rbl.ClientID %> input').change(function () 
  __doPostBack('<%: rbl.ClientID %>', '');
);
<asp:UpdatePanel runat="server" ID="panel">
  <ContentTemplate>
    
    <div class="modal fade" id="Modal">
      <div class="modal-dialog">
        <div class='panel panel-info'>
          <div class='panel-body'>
            <asp:RadioButtonList ID="rbl" runat="server">
              <asp:ListItem Value="add">Add</asp:ListItem>
              <asp:ListItem Value="remove">Remove</asp:ListItem>
            </asp:RadioButtonList>
          </div>
        </div>
      </div>        
    </div>                              
    
  </ContentTemplate>
</asp:UpdatePanel>

aspx.vb

Private Sub rbl_SelectedIndexChanged(sender As Object, e As EventArgs) Handles rbl.SelectedIndexChanged
    myFnc()
End Sub

【问题讨论】:

看到这个JSFiddle! 【参考方案1】:

你可以这样做:

<div class="modal fade" id="Modal">
    <div class="modal-dialog">
        <asp:UpdatePanel runat="server" ID="panel">
            <ContentTemplate>
                <div class='panel panel-info'>
                    <div class='panel-body'>
                        <asp:RadioButtonList ID="rbl" runat="server" OnSelectedIndexChanged="rbl_SelectedIndexChanged">
                            <asp:ListItem Value="add">Add</asp:ListItem>
                            <asp:ListItem Value="remove">Remove</asp:ListItem>
                        </asp:RadioButtonList>
                    </div>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</div>

【讨论】:

【参考方案2】:

您可以使用 RadioButtonList 的 OnSelectedIndexChanged 服务器端事件并将 Autopost 属性设置为 True 来实现相同的功能。您无需使用

通过 __doPostBack 回发帖子
$('#<%=rbl.ClientID %> input').change(function () 
  __doPostBack('<%: rbl.ClientID %>', '');
);

【讨论】:

【参考方案3】:

在这样的“OnSelectedIndexChanged”传递事件上

                `<asp:RadioButtonList ID="rbl" runat="server" OnSelectedIndexChanged="rbl_SelectedIndexChanged(event)">
                        <asp:ListItem Value="add">Add</asp:ListItem>
                        <asp:ListItem Value="remove">Remove</asp:ListItem></asp:RadioButtonList>`   

之后进行必要的更改,如下所示。

`$('#<%=rbl.ClientID %> input').change(function (event) 

__doPostBack('', ''); event.preventDefault(); )` 您的模态弹出窗口不会关闭。

【讨论】:

以上是关于如何防止从 dopostback 关闭引导模式?的主要内容,如果未能解决你的问题,请参考以下文章

如果存在验证错误,防止引导模式关闭

如何防止在我的引导模式中加载的 html 影响我的页面 html?

如何使用从 iframe 加载的点击事件关闭引导模式

响应式文件管理器。防止模式关闭图像选择

防止 ASP.net __doPostback() 来自 UpdatePanel 中的 jQuery submit()

从 Angular 控制器关闭 Twitter 引导模式