【问题标题】:Trigger javascript confirm based on server side logic (ASP.NET)基于服务器端逻辑(ASP.NET)触发javascript确认
【发布时间】:2011-09-29 14:06:28
【问题描述】:

有没有办法让下面的代码工作?基本上,当我点击 btnOne 时,如果 a 为真,我希望它会弹出确认框。如果我按是,那么它将执行 btnTwo 方法。否则,它不会做任何事情。目前,它没有弹出窗口,我不知道为什么。有人可以指出我正确的方向吗?或者可能让我知道实现这一目标的其他方式。

任何信息将不胜感激。

例如:

public void btnTwo(object sender, EventArgs e)
{
    //Do some processing
}

public void btnOne(object sender, EventArgs e)
{
    if( a == true )
        btnTwo.Attributes["onClick"] = "return confirm('test');"

    btnTwo(sender, new EventArgs());
}

【问题讨论】:

  • 什么是a?你在哪里调用任何服务器端的东西?
  • 假设 a 是某个已在某处设置的变量。是的,它来自服务器端

标签: javascript asp.net button onclick confirm


【解决方案1】:

我认为您正在混合大量客户端和服务器端?你能在客户端检查“a”(隐藏字段)吗?

或者在后面的代码中检查值后添加启动脚本并确认,然后在 javascript 中“单击”第二个按钮。

Protected Sub btnSecond_Click(sender As Object, e As System.EventArgs) Handles btnSecond.Click
    Me.lblInfo.Text = "SecondClick is done!"
End Sub

Protected Sub btnFirst_Click(sender As Object, e As System.EventArgs) Handles btnFirst.Click
    a = 10
    Dim action As String = "<script> if(confirm('sure ?')){  document.getElementById('" & btnSecond.ClientID & "').click()} </script>"
    If (a > 5) Then
        Page.ClientScript.RegisterStartupScript(Me.Page.GetType(), "startConfirm", action)
    End If
End Sub

和标记:

<form id="form1" runat="server">
<div>
    <asp:Button runat="server" ID="btnFirst" />
    </br>
    <asp:Button runat="server" ID="btnSecond" />
    <asp:Label runat="server" ID="lblInfo" />
</div>
</form>

【讨论】:

    【解决方案2】:

    确保正在访问代码,并改用OnClientClick

    protected void Page_Load(object sender, EventArgs e)
    {
        bool a = true;        
        if (a)
            btnTwo.OnClientClick = "return confirm(\"Are you sure?\");";
    }
    

    【讨论】:

    • 谢谢詹姆斯。我试了一下,确认弹窗没有出现。
    猜你喜欢
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多