显示成功提交到数据库的表单数据的jQuery Modal



我正面临jquery模态对话框的问题。我希望模态框显示只有当我的数据成功保存到数据库。我使用c#和asp.net,并在后台我使用Sql server 2008 R2。目前我的数据是成功进入,我显示"数据成功保存在标签上"点击按钮后,但我想显示一个模态框只有当我点击按钮,我的数据被保存。

我已经创建了这个脚本

$("#Btndiag").click(function () { $("#myModal").modal(); });

和内容页主体我写了这个

<asp:Button ID="Btndiag" runat="server" Text="show dialog" onclick="Btndiag_Click1" />
<div class="modal hide fade" id="myModal">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">×</button>
        <h3>Settings</h3>
    </div>
    <div class="modal-body">
        <p>Here settings can be configured...</p>
    </div>
    <div class="modal-footer">
        <a href="#" class="btn" data-dismiss="modal">Close</a>
        <a href="#" class="btn btn-primary">Save changes</a>
    </div>
</div>

要实现你想要的,你必须在后端处理数据,然后有ASP。. NET Framework为你执行一个脚本。

要做到这一点,在整个页面回发时使用ClientScriptManager.RegisterClientScriptBlock,如果控件在UpdatePanel中,则使用ScriptManager.RegisterClientScriptBlock

c#代码:

protected void Btndiag_Click1(object sender, EventArgs e)
{
    // process database
    // verify results
    if (success)
    {
       ClientScriptManager.RegisterClientScriptBlock(this, "Btndiag_Click1", "$('#myModal').modal();", true);
    }
}

请记住,如果按钮和模态div在UpdatePanel中,则将ClientScriptManager.RegisterClientScriptBlock替换为ScriptManager.RegisterClientScriptBlock


最后,作为最后一个信息提示…您的脚本($("#Btndiag").click(...))将无法工作,因为ASP。. NET在呈现为HTML时更改元素id。

你必须按以下方式操作:

$("#<%= Btndiag.ClientID %>").click(function () { $("#myModal").modal(); });

请注意,您做而不是需要对按钮的单击事件做任何事情。您希望框架在回发后自动运行您的脚本。

最新更新