Запуск подтверждения JavaScript на основе логики на стороне сервера (ASP.NET) - PullRequest
0 голосов
/ 29 сентября 2011

Есть ли способ заставить следующий код работать?В основном, когда я нажимаю на btnOne, если значение равно true, я ожидаю, что оно отобразит окно подтверждения.И если я нажму да, то он выполнит метод 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());
}

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Я думаю, что вы смешиваетесь на стороне клиента и сервера? Не могли бы вы отметить «а» (скрытое поле) на стороне клиента?

Или после проверки значения в коде добавьте сценарий запуска с подтверждением, а затем нажмите кнопку «Да», нажмите вторую кнопку в 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 голосов
/ 29 сентября 2011

Убедитесь, что код набирается, и вместо него используйте OnClientClick:

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