2011-09-29 49 views
0

有没有办法让下面的代码有效?基本上,当我点击btnOne时,如果a是真的,我希望它弹出确认框。如果我按是,那么它会执行btnTwo方法。否则,它不会做任何事情。目前,它不弹出窗口,我不知道为什么。有人可以请指点我正确的方向吗?或者可能让我知道实现此目的的其他方式。基于服务器端逻辑触发javascript确认(ASP.NET)

任何信息将不胜感激。

例如:

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()); 
} 
+1

什么是'了'?你在哪里调用任何服务器端? –

+0

假设a是某个已设置的某个变量。是的,它来自服务器端 – developer

回答

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> 
0

确保正在达到的代码,并使用OnClientClick代替:

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

谢谢詹姆斯。我试了一下,但确认弹出窗口没有显示出来。 – developer

相关问题