ASP.net VB DetailsView插入:取消问题上的javascript回发

ASP.net VB DetailsView插入:取消问题上的javascript回发,javascript,asp.net,insert,detailsview,Javascript,Asp.net,Insert,Detailsview,在我的ASP.net应用程序中,在Detailsview上使用ItemInserting, 我使用javascript函数向用户显示确认框。确认框基本上显示来自数据库的查询结果 这很好,只是即使用户单击“取消”,也会发生回发 我确信我在这里遗漏了一些基本的东西,专家们能帮忙吗?感谢您的回复。我确实搜索了整个网站,但大多数解决方案都在按钮上使用onClick事件。我不知道如何在这里做到这一点 更新:根据Geekyouned的建议,我尝试在脚本中加入一个条件。现在弹出窗口不再出现。有人吗 Prot

在我的ASP.net应用程序中,在Detailsview上使用ItemInserting, 我使用javascript函数向用户显示确认框。确认框基本上显示来自数据库的查询结果

这很好,只是即使用户单击“取消”,也会发生回发

我确信我在这里遗漏了一些基本的东西,专家们能帮忙吗?感谢您的回复。我确实搜索了整个网站,但大多数解决方案都在按钮上使用onClick事件。我不知道如何在这里做到这一点

更新:根据Geekyouned的建议,我尝试在脚本中加入一个条件。现在弹出窗口不再出现。有人吗

 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
Protected Sub-CustomerDetail\u items插入(发送者作为对象,e作为System.Web.UI.WebControls.DetailsViewInsertEventArgs)
Dim args As String=e.Values(“WriteID”).ToString()
对于SqlDataSource3中的每个drv As Data.DataRowView。[选择](DataSourceSelectArguments.Empty)
如果drv(“WriteID”)=args,则
Dim ConnString As String=“数据源=75409CHQ4034\SQLEXPRESS;初始目录=ExpenseTracker;集成安全性=True”
Dim SQLConn作为新的SqlConnection()
Dim SQLCmd作为新的SqlCommand()
将SQLdr设置为SqlDataReader
SQLConn.ConnectionString=ConnString'设置连接字符串
SQLConn.Open()'打开连接
SQLCmd.Connection=SQLConn'设置要与SQL命令一起使用的连接
SQLCmd.CommandText=“从ExpenseImageAudit中选择前1个预算-差额为“剩余”,其中WriteID=“+”“+args+”“按ID分组,按ID说明预算差额顺序”
'设置SQL字符串
SQLdr=SQLCmd.ExecuteReader'获取数据
而SQLdr.Read()在数据存在时
TextBox8.Text=SQLdr(“剩余”)
Dim脚本,字符串=String.Format(“confirBudget({0});”,TextBox8.Text)
Page.ClientScript.RegisterStartupScript(Me.[GetType](),“script”,script)
结束时
SQLdr.Close()'关闭SQLDataReader
SQLConn.Close()'关闭连接
如果结束
下一个
端接头
脚本:

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

函数confirmBudget(金额){
return confirm('根据您上次的交易,您的剩余金额为'+amount+'。是否继续?');
}        

在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>"
Dim脚本为String=“var a=”+TextBox8.Text&“;var answer=confirm('根据您上次的交易,您的剩余金额为“+a+”。是否继续?);返回答案

在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>"
Dim脚本为String=“var a=”+TextBox8.Text&“;var answer=confirm('根据您上次的交易,您的剩余金额为“+a+”。是否继续?);返回答案

将此脚本放在aspx页面的标题部分

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

函数confirmBudget(金额)
{
如果(确认('根据您上次的交易,您的剩余金额为'+amount+'。是否继续?'))
{
document.getElementById(“btnDoSomethingOnOK”)。单击();
}
}
从服务器端代码中这样称呼它:

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

Page.ClientScript.RegisterStartupScript(this.GetType(), "script", script);
string script=string.Format(“confirBudget({0});”,TextBox8.Text);
Page.ClientScript.RegisterStartupScript(this.GetType(),“script”,script);

很抱歉使用C#语法。我不懂vb。

将此脚本放在aspx页面的标题部分

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

函数confirmBudget(金额)
{
如果(确认('根据您上次的交易,您的剩余金额为'+amount+'。是否继续?'))
{
document.getElementById(“btnDoSomethingOnOK”)。单击();
}
}
从服务器端代码中这样称呼它:

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

Page.ClientScript.RegisterStartupScript(this.GetType(), "script", script);
string script=string.Format(“confirBudget({0});”,TextBox8.Text);
Page.ClientScript.RegisterStartupScript(this.GetType(),“script”,script);

很抱歉使用C#语法。我不知道vb。

当用户单击“取消”以防止回发时返回false不知道如何执行此操作。你能给出一个例子吗?Dim脚本为String=“var a=”+TextBox8.Text&“;如果{!确认('根据你上次的交易,你的剩余金额为“+a+”);返回false“Page.ClientScript.RegisterStartupScript(Me.[GetType](),“script”,script)**你不能每次都返回false。Geekyouned的答案应该是有效的。好吧,它不起作用。:)这也不起作用:'Dim script As String=“var a=”+TextBox8.Text&';如果{!confirm('根据你上次的交易,你剩下的金额是“+a+”)返回false;否则返回true““Page.ClientScript.RegisterStartupScript(Me.[GetType](),“script”,script)在用户单击“取消”以防止回发时返回false不确定如何执行。您能否给出一个示例?将脚本设置为String=“var a=”+TextBox8.Text&”;如果{!确认(“根据您上次的交易,您的剩余金额为“+a+”是否继续?”);返回false“Page.ClientScript.RegisterStartupScript(Me.[GetType](),“script”,script)**您不能每次都返回false。Geekyouned的答案应该有效。它不起作用。:)这也不起作用:“将脚本作为字符串显示为Dim”“var a=”+TextBox8.Text&“;如果{!confirm('根据您上次的交易,您的剩余金额为“+a+”,是否继续?))返回false;否则返回true“'Page.ClientScript.RegisterStartupScript(Me.[GetType](),“script”,script)返回答案不起作用。现在,弹出窗口根本不出现,调试器错误为“函数外的返回语句”,而SQLdr.Read()TextBox8.Text=SQLdr(“剩余”)脚本为String=“var a=”+TextBox8.Text&“;var answer=confirm('您的预算为'+a”);返回答案