简体   繁体   English

如何从后面的代码关闭引导模式?

[英]how to close bootstrap modal from code behind?

I am doing update operations from modal.我正在从模态进行更新操作。 When modal popup its load specific row data to which I want to update.当模态弹出它的加载我想要更新的特定行数据时。 Below is my modal code:下面是我的模态代码:

<form id="form1" runat="server">
    <asp:ScriptManager ID="sm1" runat="server"></asp:ScriptManager>
    <asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <div id="myModal" class="modal fade" role="dialog" runat="server" draggable="auto">
                <div class="modal-dialog">

                    <!-- Modal content-->
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal">&times;</button>
                            <h4 class="modal-title">Insert Module</h4>
                        </div>
                        <div class="modal-body">
                            <table class="table table-bordered">
                                <thead>
                                    <tr>
                                        <td colspan="2" style="text-align: center">
                                            <label>UPDATE EMPLOYEE DETAIL</label>
                                        </td>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td>
                                            <label>FIRST NAME</label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="up_tb1" runat="server"></asp:TextBox>
                                            <ajax:filteredtextboxextender id="FilteredTextBoxExtender7" targetcontrolid="up_tb1" filtertype="UppercaseLetters,LowercaseLetters" runat="server"></ajax:filteredtextboxextender>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <label>MIDDLE NAME</label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="up_tb2" runat="server"></asp:TextBox>
                                            <ajax:filteredtextboxextender id="FilteredTextBoxExtender8" targetcontrolid="up_tb2" filtertype="UppercaseLetters,LowercaseLetters" runat="server"></ajax:filteredtextboxextender>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <label>LAST NAME</label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="up_tb3" runat="server"></asp:TextBox>
                                            <ajax:filteredtextboxextender id="FilteredTextBoxExtender9" targetcontrolid="up_tb3" filtertype="UppercaseLetters,LowercaseLetters" runat="server"></ajax:filteredtextboxextender>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <label>EMAIL</label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="up_tb4" runat="server"></asp:TextBox>
                                            <ajax:filteredtextboxextender id="FilteredTextBoxExtender10" targetcontrolid="up_tb4" filtertype="Numbers, LowercaseLetters, Custom" validchars=".@" runat="server"></ajax:filteredtextboxextender>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <label>DOB</label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="up_tb5" runat="server" Enabled="false"></asp:TextBox>
                                            <ajax:calendarextender id="CalendarExtender2" runat="server" popupbuttonid="ImageButton1" targetcontrolid="up_tb5"></ajax:calendarextender>
                                            <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/img/calendar146.png" Width="16px" Height="16px" />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <label>USERNAME</label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="up_tb6" runat="server"></asp:TextBox>
                                            <ajax:filteredtextboxextender id="FilteredTextBoxExtender12" targetcontrolid="up_tb6" filtertype="Numbers, LowercaseLetters, Custom" validchars=".@" runat="server"></ajax:filteredtextboxextender>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <label>PASSWORD</label>
                                        </td>
                                        <td>
                                            <asp:TextBox ID="up_tb7" runat="server" TextMode="Password"></asp:TextBox>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">
                                            <asp:Button ID="up_tb8" CssClass="btn btn-success" runat="server" Text="UPDATE" OnClick="up_tb8_Click" />
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                            <asp:ValidationSummary ID="ValidationSummary2" runat="server"
                                DisplayMode="BulletList" ShowSummary="true" HeaderText="Errors:" />
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                        </div>
                    </div>
                </div>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

I am loading modal from code behind and populate its fields from codebehind.我正在从后面的代码加载模态并从代码隐藏填充其字段。 Below is my codebehind code:下面是我的代码隐藏代码:

protected void up_tb8_Click(object sender, EventArgs e)
    {
        var db = new dbDataContext();
        Employee emp = new Employee();
        db.Sp_Updatevalue(up_id, up_tb1.Text, up_tb2.Text, up_tb3.Text, up_tb4.Text, Convert.ToDateTime(up_tb5.Text), up_tb6.Text, up_tb7.Text);
        ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "ClosePopup();", true);
     }

When I click my update button it successfully run my update stored procedure and update values from database.当我单击我的更新按钮时,它成功运行了我的更新存储过程并更新了数据库中的值。 Question is when data update modal pop window was gone but its dim gray background still fixed on my screen I want to close modal properly when my records has been updated and my gridview refreshes and show my updated records.问题是当数据更新模态弹出窗口消失但其暗灰色背景仍然固定在我的屏幕上时我想在我的记录更新并且我的网格视图刷新并显示我更新的记录时正确关闭模态。

If a user control (ascx) is wrapped inside the modal, then this:如果用户控件 (ascx) 包含在模态中,则:

 ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "$('#myModal').modal('hide');", true);

will NOT work.不管用。 Instead of this , you should use this.Page .取而代之的,你应该使用this.Page。

Correct solution:正确的解决方法:

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "Pop", "$('#myModal').modal('hide');", true);

You can try with this:你可以试试这个:

 ScriptManager.RegisterStartupScript(Page, Page.GetType(), "#myModal", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();$('#myModal').hide();", true);

It works for me..!这个对我有用..!

\n
\n
\n
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "#myModal1", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();", true);
\n
\n
\n

You can change your server button -您可以更改服务器按钮 -

 <asp:Button ID="up_tb8" CssClass="btn btn-success" runat="server" Text="UPDATE" OnClick="up_tb8_Click" />

to something like this -像这样的事情 -

<button id="up_tb8" type="button" class="btn btn-default" data-dismiss="modal" runat="server" onserverclick="up_tb8_Click">UPDATE</button>

hope this will work希望这会奏效

You can try with this :你可以试试这个:

 ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "$('#myModal').modal('hide');", true);

Or you can define a ClosePopup Function in your JS file to do it and then call it as you were doing it.或者你可以在你的 JS 文件中定义一个 ClosePopup 函数来完成它,然后在你这样做时调用它。

function ClosePopup(){
$('#myModal').modal('hide');
}

I have something similar in my application.我的应用程序中有类似的东西。 I refresh my grid by rebinding data from database on a button click.我通过单击按钮重新绑定数据库中的数据来刷新我的网格。 In the javascript closepopup() function, after closing the modal, I call button click event that will refresh my datagrid.在 javascript closepopup()函数中,关闭模态后,我调用将刷新我的数据网格的按钮单击事件。 You can create a hidden button for binding and perform click event like I did.您可以像我一样创建一个隐藏按钮进行绑定并执行点击事件。

Some code sample:一些代码示例:

This is refresh button:这是刷新按钮:

<asp:Button ID="btnClearFilter" runat="server" Text="Refresh" onclick="btnClearFilter_Click" />

Code behind:后面的代码:

    protected void btnClearFilter_Click(object sender, EventArgs e)
    {
        FillGrid(); //here I bind to datagrid
    }

And when popup is closing:当弹出窗口关闭时:

    function closepopup() {
        $find('thisModalPopupExtender').hide();  
        document.getElementById("<%= btnClearFilter.ClientID %>").click();  //click event on refresh button
    }

Not the best solution but it works :)不是最好的解决方案,但它有效:)

Add Id attribute & runat="server" to the close buttons.将 Id 属性 & runat="server" 添加到关闭按钮。

In C# code behind,在后面的 C# 代码中,

 btnId1.Attributes.Add("class", "close"); 

Here btnId1 is the Id name of close button.这里 btnId1 是关闭按钮的 ID 名称。

This Code Worked Very Good...这段代码工作得很好......

c# : C# :

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "ModalHide", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();$('#Div3').hide();", true);

VB.Net: VB.Net:

ScriptManager.RegisterStartupScript(me, me.GetType(), "ModalHide", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();$('#Div3').hide();", true)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM