繁体   English   中英

根据单击的提交按钮分配不同的onclicks

[英]Assigning Different Onclicks Depending On Which Submit Button Clicked

我有一个asp.net表单,其中包含3个按钮,这些按钮触发用于单击按钮并供用户输入详细信息的相关事件模态。当前,每个模态都有一个OnClick ,将其带到我的代码后面。

我现在尝试实现在单击每个模式上的“提交”时显示的成功模式。

我想只有甲肝所有三个我的其他人的共享EONE成功模式。 当初始模式关闭时,我正在工作,然后显示我的成功模式,但是它没有写入我的数据库。

如果我将自己的OnClick到我的成功模式上的按钮上,它将发布到我的数据库中,所以我在想我需要一些方法,将OnClick添加到成功模式上的“关闭”按钮上,但是我需要使用它来填充正确的OnClick具体取决于首先选择了哪个按钮。

当前代码

数据输入模式提交按钮

<asp:Button CssClass="btn btn-success" ID="btnSubmitNewFunc" runat="server" Text="Submit" ToolTip="Click to submit your request." data-toggle="modal" data-target="#modalSuccess" data-backdrop="static" data-keyboard="false" data-dismiss="modal" OnClick="btnSubmitNewFunc_Click" />
<asp:Button CssClass="btn btn-success" ID="btnSubmitBug" runat="server" Text="Submit" ToolTip="Click to submit your request." data-toggle="modal" data-target="#modalSuccess" data-backdrop="static" data-keyboard="false" data-dismiss="modal" OnClick="btnSubmitBug_Click" />
<asp:Button CssClass="btn btn-success" ID="btnSubmitNewPlace" runat="server" Text="Submit" ToolTip="Click to submit your request." data-toggle="modal" data-target="#modalSuccess" data-backdrop="static" data-keyboard="false" data-dismiss="modal" OnClick="btnSubmitNewPlace_Click" />

成功模式关闭按钮

<asp:Button CssClass="btn btn-warning" ID="btnModalSuccess" runat="server" Text="Close" ToolTip="Click to close this screen." />

如果要在单击btnModalSuccess时提交数据,可以首先将原始命令名称保存在隐藏字段中:

<asp:HiddenField ID="hiddenCommand" runat="server" />
<asp:Button ID="btnSubmitNewFunc" ... OnClientClick="return showSuccess('NewFunc');" />
<asp:Button ID="btnSubmitBug" ... OnClientClick="return showSuccess('Bug');" />
<asp:Button ID="btnSubmitNewPlace" ... OnClientClick="return showSuccess('NewPlace');" />

借助以下Javascript实用程序功能:

function showSuccess(cmd) {
    $('#hiddenCommand').val(cmd); 
    $('#modalsuccess').modal('show');
    return false; // To prevent the postback
}

btnModalSuccess的事件处理程序中,处理将取决于隐藏字段中存储的命令:

protected void btnModalSuccess_Click(object sender, EventArgs e)
{
    switch (hiddenCommand.Value)
    {
        case "NewFunc":
            ProcessNewFunc();
            break;

        case "Bug":
            ProcessBug();
            break;

        case "NewPlace":
            ProcessNewPlace();
            break;
    }
}


话虽如此,我建议您先将数据发布到服务器,然后显示成功模式。 否则,用户可能会看到成功模式,并且无需单击btnModalSuccess即可关闭浏览器,从而阻止将数据保存到数据库。

在代码隐藏中可能看起来像这样:

 protected void btnSubmitNewFunc_Click(object sender, EventArgs e) { // Save data to DB here ... ShowSuccessModal(); } protected void btnSubmitBug_Click(object sender, EventArgs e) { // Save data to DB here ... ShowSuccessModal(); } protected void btnSubmitNewPlace_Click(object sender, EventArgs e) { // Save data to DB here ... ShowSuccessModal(); } private void ShowSuccessModal() { ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowSuccess", "$('#modalsuccess').modal('show');", true); } 

按钮btnModalSuccess将简单地关闭模态,而不会引起回发:

 <asp:Button ID="btnModalSuccess" runat="server" Text="Close" ... OnClientClick="$('#modalsuccess').modal('hide'); return false;" /> 

暂无
暂无

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

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