0

私の ASP.net アプリケーションでは、Detailsview で ItemInserting を使用して、javascript 関数を使用してユーザーに確認ボックスを表示しています。確認ボックスには、基本的にデータベースからのクエリの結果が表示されます。

これは問題なく動作しますが、ユーザーがキャンセルをクリックしてもポストバックが発生します。

ここで初歩的なことが欠けていると確信しています。専門家が助けてくれますか? あなたの応答に感謝します。サイト全体を検索しましたが、ほとんどのソリューションはボタンで onClick イベントを使用しています。ここでそれを機能させる方法がわかりません。

更新: TheGeekYouNeed の提案に基づいて、スクリプトに条件を入れてみました。これでポップアップは表示されなくなりました。誰?

 Protected Sub CustomerDetail_ItemInserting(sender As Object, e As System.Web.UI.WebControls.DetailsViewInsertEventArgs)
    Dim args As String = e.Values("WriteID").ToString()

    For Each drv As Data.DataRowView In SqlDataSource3.[Select](DataSourceSelectArguments.Empty)
        If drv("WriteID") = args Then


            Dim ConnString As String = "Data Source=75409CHQ4034\SQLEXPRESS;Initial Catalog=ExpenseTracker;Integrated Security=True"
            Dim SQLConn As New SqlConnection()
            Dim SQLCmd As New SqlCommand()
            Dim SQLdr As SqlDataReader

            SQLConn.ConnectionString = ConnString 'Set the Connection String
            SQLConn.Open() 'Open the connection
            SQLCmd.Connection = SQLConn 'Sets the Connection to use with the SQL Command
            SQLCmd.CommandText = "Select  Top 1 Budget - Difference as 'Remaining' FROM ExpenseImageAudit where WriteID =" + "'" + args + "' Group by ID, Budget-Difference order by ID desc "

            'Sets the SQL String
            SQLdr = SQLCmd.ExecuteReader 'Gets Data

            While SQLdr.Read() 'While Data is Present

                TextBox8.Text = SQLdr("Remaining")

                Dim script As String = String.Format("<script type='text/javascript'>confirmBudget({0});</script>", TextBox8.Text)
                Page.ClientScript.RegisterStartupScript(Me.[GetType](), "script", script)
            End While
        SQLdr.Close() 'Close the SQLDataReader
        SQLConn.Close() 'Close the connection

        End If

    Next
End Sub

脚本:

    <script type="text/javascript">
    function confirmBudget(amount) {
        return confirm('Based on your last transaction, your amount left is' + amount + '. Do you want to proceed?');
    }        
</script>
4

2 に答える 2

2

このスクリプトを aspx ページの head セクションに配置します。

<script type="text/javascript">
   function confirmBudget(amount)
   {
      if(confirm('Based on your last transaction, your amount left is' + amount + '. Do you want to proceed?'))
      {
         document.getElementById("btnDoSomethingOnOK").click();
      }

   }
</script>

サーバー側のコードから次のように呼び出します。

string script = string.Format("<script type='text/javascript'>confirmBudget({0});</script>", TextBox8.Text);

Page.ClientScript.RegisterStartupScript(this.GetType(), "script", script);

C# 構文で申し訳ありません。私はvbを知りません。

于 2012-07-02T20:30:49.977 に答える
1

Javascript で、回答を返します。

Dim script As String = "<script language='javascript'>var a=' " + TextBox8.Text & "'; var answer = confirm('Based on your last transaction, your amount left is '+ a + '. Do you want to proceed?'); return answer; </script>"
于 2012-07-02T16:13:45.697 に答える