-5

次のdivがあります(通常は非表示)

<div id="confirmDialog" class="window" style="background-color:#f2f4f7; border:1px solid #d9a0e2; text-align:center; height:100px; position:fixed;  padding:10px;  top:50%  " runat="server" visible="false">
<br /> You already have a leave request on the chosen date. Are you sure you want to submit this request?<br /><br />
<asp:Button ID="BtnConfirm" runat="server" Text="Yes"  Width="60px" />&nbsp;
<asp:Button ID="BtnNo" runat="server" Text="Cancel" onclick="BtnNo_Click" />
</div>

ユーザーが送信をクリックすると、コードの実行が開始され、以下の関数が真の場合、コードの実行を続行する前に確認ダイアログを表示したいと思います:

protected void BtnAdd_Click(object sender, EventArgs e)
{
    //some validations
    if (new LeaveLogic().GetEmployeeLeaveRequestByDate(username, Convert.ToDateTime(TxtBoxDate.Text)) > 0)
    {
           confirmDialog.Visible = true;
           /if BtnConfirm is click continue to execute code 
           //else stop

asp.net/jQuery 経由でこれを行うにはどうすればよいですか?

4

2 に答える 2

1

コードを 2 つの異なる部分に分割する必要があります。1 つは実行後に確認ダイアログが表示される部分、もう 1 つはフォームを送信して残りの部分を実行する部分です。サーバー側のコードを実行し、クライアント側で確認ダイアログをポップアップしてからサーバー側で続行することはできないため、これを一発で行うことはできません。

あなたがしなければならないことは(疑似コードで)

button1_Click()
{
  Execute_logic;
  use scriptmanager to trigger a JavaScript function that displays the confirmation dialog;
}

JavaScript 関数は次のことを行う必要があります。

function askConfirm()
{

  if(confirm('want to continue?'))
     submit_the_form to execute second part of the process();
  else 
     return false;
}

サーバー側のコード:

//This is the method that should execute after the JavaScript function submits the form
Handler_ForSecondPartOfTheRequest()
{
  execute second part of the logic;
}
于 2013-07-30T09:20:55.653 に答える