C#web应用程序javascript警告代码背后

时间:2012-08-08 13:52:44

标签: c# asp.net web-applications

我想在Javascript网络应用程序中创建asp.net警报。但我无法创造这个。我发布我的部分代码是在这里脚本管理器javascript警报没有显示。请帮我显示javascript警告..

if (noofday > totalday)
{   

    // I want to display the confirm message box in this section   

    ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "return confirm('Are you sure you want to delete');", true);
    if(true)
    {
        DataSet5TableAdapters.sp_inleaverequestTableAdapter TA = new DataSet5TableAdapters.sp_inleaverequestTableAdapter();
        TA.GetData(lbl_empcode.Text, lbl_empname.Text, lbl_dept.Text, txtfromdate.Text, txttodate.Text, Convert.ToString(noofday), ddlleavetype.SelectedItem.Text, Convert.ToString(totalday), txtreason.Text, ddlforward.SelectedItem.Text, " ", " ", " ", " ", lbl_date.Text);

        Send_Email(lbl_empcode.Text, lbl_empname.Text, txtfromdate.Text, txttodate.Text, noofday, ddlleavetype.SelectedItem.Text, txtreason.Text);
        clear();
        ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>alert('Request sent successfully. Go and watch your status..');</script>", false);
    }
    else
    {   
        //DO Something
    }
}
else
{
    DataSet5TableAdapters.sp_inleaverequestTableAdapter TA = new DataSet5TableAdapters.sp_inleaverequestTableAdapter();
    TA.GetData(lbl_empcode.Text, lbl_empname.Text, lbl_dept.Text, txtfromdate.Text, txttodate.Text, Convert.ToString(noofday), ddlleavetype.SelectedItem.Text, Convert.ToString(totalday), txtreason.Text, ddlforward.SelectedItem.Text, " ", " ", " ", " ", lbl_date.Text);

    Send_Email(lbl_empcode.Text, lbl_empname.Text, txtfromdate.Text, txttodate.Text, noofday, ddlleavetype.SelectedItem.Text, txtreason.Text);

    ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>alert('Request sent successfully. Go and watch your status..');</script>", false);
    clear();
}

3 个答案:

答案 0 :(得分:0)

我建议你首先尝试弄清楚你期望的代码是否会返回到页面。

有几种方法可以做到这一点,最简单的方法是在上面的代码运行后在页面上显示“查看源代码”。如果您可以在页面中找到该内容,您将知道该内容正在返回到该页面但未执行。

如果您在查看来源时没有看到内容,那么您会遇到其他问题。控制权被传递到另一个页面,或者它实际上没有进入你期望的if条件。

一旦您了解问题源自这两个部分,您就可以开始找到可能导致问题的原因。

您可能还不完全了解网络的运作方式。鉴于这组代码......

       ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "return confirm('Are you sure you want to delete');", true);
            if(true)
            {
                DataSet5TableAdapters.sp_inleaverequestTableAdapter TA = new DataSet5TableAdapters.sp_inleaverequestTableAdapter();
                TA.GetData(lbl_empcode.Text, lbl_empname.Text, lbl_dept.Text, txtfromdate.Text, txttodate.Text, Convert.ToString(noofday), ddlleavetype.SelectedItem.Text, Convert.ToString(totalday), txtreason.Text, ddlforward.SelectedItem.Text, " ", " ", " ", " ", lbl_date.Text);

                Send_Email(lbl_empcode.Text, lbl_empname.Text, txtfromdate.Text, txttodate.Text, noofday, ddlleavetype.SelectedItem.Text, txtreason.Text);
                clear();
                ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>alert('Request sent successfully. Go and watch your status..');</script>", false);
            }

...您似乎希望服务器上的页面执行停止,然后等待客户端响应。这不是网页生命周期的工作方式。服务器代码将完全执行并将内容发送回客户端。它不是一个交互式过程(即使使用AJAX),如Windows窗体或控制台应用程序。

答案 1 :(得分:0)

AJAX充其量是个问题,特别是如果你像我们一样使用VS 2003。使用VS2008或更新版本的Dev Suite可能会更好。所以我们切换到弹出窗口的模态对话框。它是使用JavaScript完成的。我们使用了一些较旧的开发站点上的subModal示例。迫不及待想摆脱VS2003和VB.Net。呸!

答案 2 :(得分:-2)

我建议您Modal Pop扩展程序(Ajax工具),而不是MessageBox。 因为asp.net不包含MessageBox