Javascript Asp.net C#在插入记录之前使用JS确认对话框检查条件不触发为什么?

Javascript Asp.net C#在插入记录之前使用JS确认对话框检查条件不触发为什么?,javascript,c#,asp.net,webforms,confirm,Javascript,C#,Asp.net,Webforms,Confirm,我有几个用于用户输入的文本框和保存记录的按钮。在最终将记录插入数据库之前,在C#按钮单击操作中,我建议用户使用带有确认对话框的javascript函数填充一些重要的文本框。如果用户选择“是”,则代码应断开并聚焦文本框。否则,代码应继续并插入记录。这是我的目标。 但是,即使条件为真,JS函数也没有启动。JS函数仅在有si返回时启动在C#JS调用的末尾。这是我的密码: protected void savenew_Click(object sender, EventArgs e)

我有几个用于用户输入的文本框和保存记录的按钮。在最终将记录插入数据库之前,在C#按钮单击操作中,我建议用户使用带有确认对话框的javascript函数填充一些重要的文本框。如果用户选择“是”,则代码应断开并聚焦文本框。否则,代码应继续并插入记录。这是我的目标。 但是,即使条件为真,JS函数也没有启动。JS函数仅在有si返回时启动在C#JS调用的末尾。这是我的密码:

    protected void savenew_Click(object sender, EventArgs e)
        {            if (string.IsNullOrEmpty(arr.Text)) { ScriptManager.RegisterStartupScript(this, GetType(), "alertMessage", "alert('Missing arr..');", true); arr.Focus(); return; }


// HERE IS PROBLEM: 

            if (string.IsNullOrEmpty(telnr.Text))
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "corectyesno()", true);  return;
            }

  try
            {

                SqlCommand MyCommand = new SqlCommand( etc...



//and JS function:
         function corectyesno()
            {
                if (confirm('Do you want to proceed ?')) {
                    return true;
                }
                else {
                    return false;
                }
            }

我的语言不是英语,所以请原谅我的语法。接下来,编程是我的爱好,所以。。。感谢所有能够帮助我并提出更好方法的人。

如果您想继续在服务器端检查此逻辑,那么我认为最简单的方法是仅在不满足条件的情况下执行SQL逻辑。也许可以简单地说:

if (string.IsNullOrEmpty(telnr.Text))
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "corectyesno()", true);  return;
}
else
{
    try
    {
        // your SQL code...
    }
    // etc.
}

这几乎与您的逻辑相同,但是
else
表示只有在不满足
if
条件时才应执行SQL代码。

谢谢。好的,基本上我理解你的逻辑。你们知道在插入之前,我应该如何检查用户是否填写了telnr文本框吗?是的,但问题是用户将在确认对话框中决定是否继续插入或停止输入telnr。。。JS调用的最后是return;它停止了执行。我试了很多次…如何在不输入telnr的情况下继续插入?因为我只是不想建议,如果不同意,请输入telnr。继续插入而不使用tlenr。@jastog:在JavaScript确认逻辑中,您可能会重新提交表单。看到这一点:或者您可以首先完全在客户端执行检查,这将完全从服务器端代码中删除此检查,并使用JavaScript截获表单提交事件,检查输入值,然后相应地取消或提交表单。如果您对JavaScript相对较新,这可能是一个学习过程,但值得付出努力。@jastog:另一种选择是,如果您希望保留此服务器端而不做太多JavaScript工作,则使用自定义表单而不是JavaScript确认对话框。这仍然需要一些工作,但您可以使用服务器端逻辑有条件地显示一个控件面板,该面板要求确认并有自己的提交按钮,该按钮执行SQL逻辑。谢谢David,我会试着在客户端查看你的建议…谢谢。因为我在谷歌上搜索了很多,我注意到很多人都遇到了这个问题。最后,我使用了ajaxToolkit:ModalPopupXtender。我在这里找到的解决方案(Thnx到Ron):