page.clientscript.registerstartupscript 没有反应

yaotomo 2012-12-23 01:53:19
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('成功!');", true);上面语句,放在PageLoad里,如果是放在if(IsPostBack)条件外是管用的,但是放在if(IsPostBack)条件里面就不管用了。我是使用了按钮的ajaxSubmit方法将数据提交到本页面,然后再进行数据库插入,如果插入成功就alert一下提示用户成功。但是现在点按钮可以插入数据库,但是并没有任何提示。。 而且写Response.Redirect也不会跳转。。。单步跟了确实执行过了语句。。


int rst = workSummary.Insert(strWPerson, strWContent, strWDate, strWProcess, strWRemark);
if (rst > 0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('成功!');", true);
}


奇怪的是这句话放在if(IsPostBack)条件外却可以提示。
...全文
888 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotomo 2013-01-08
  • 打赏
  • 举报
回复
引用 14 楼 sp1234 的回复:
if(IsPostBack) 还是 if(!IsPostBack) ?
if(IsPostBack) 因为我要在页面表单提交时获取表单数据。而不是在页面第一次打开时执行后面的代码
  • 打赏
  • 举报
回复
if(IsPostBack) 还是 if(!IsPostBack) ?
dalmeeme 2012-12-23
  • 打赏
  • 举报
回复
我自己测试了下可以弹出提示的嘛~~放在if(IsPostBack)里,回发后确实弹出提示框。 你应该用Button控件比较好,把数据库插入、响应提示等操作写在它的服务器Click事件方法中。
yaotomo 2012-12-23
  • 打赏
  • 举报
回复
if (IsPostBack) 只要在这个条件里都不会执行的,我试过。 如果rst<=0的话,数据库就不会插入成功了。
dalmeeme 2012-12-23
  • 打赏
  • 举报
回复
还是怀疑这个条件不成立,不然不会Reponse.Write("")都没反应的。
dalmeeme 2012-12-23
  • 打赏
  • 举报
回复
我让你输出的是Response.Write("输出到页面开头!");这个 应该是if (rst > 0)没执行,去掉这句if。
yaotomo 2012-12-23
  • 打赏
  • 举报
回复
但是数据库里确实插入成功了。。。
yaotomo 2012-12-23
  • 打赏
  • 举报
回复
Response.Write("<script>alert('成功!');</script>");

没有反应,右键查看源文件也没有在整个页面前生成html代码。
dalmeeme 2012-12-23
  • 打赏
  • 举报
回复
把注释部分改成Response.Write("输出到页面开头!"); 看看有米有反应?
yaotomo 2012-12-23
  • 打赏
  • 举报
回复
form1表单是ASP.NET默认的表单。 元素submit类型是button,所以用js提交

  $("#form1").validate({
            submitHandler: function (form) {
                $(form).ajaxSubmit();
            } });

      $("#submit").click(function () {
            $("#form1").submit();
   });
这些是表单元素。

  <div id="addnew">
	      <div id="leanModalCt">
				<div class="leanModalHeader">
                    <span>添加新记录</span>
				</div>
				  <div class="txt-fld">
                    <table>
                    <tr>
                      <td>记录人<br /><asp:DropDownList ID="ddlWPerson" name="pWPerson" runat="server"></asp:DropDownList></td>
                      <td>工作时间<br /><input id="wdate" name="pwdate" onclick="WdatePicker()"  type="text" /></td>
                      <td>工作进度<br /><input id="wprocess" name="pwprocess" class="required"  type="text" /></td>
                    </tr>
                    </table>    
				  </div>
				  <div class="txt-fld">
				    <label for="">工作内容</label>
                    <textarea id="wcontent" name="pwcontent" class="required" rows="1" cols="1"></textarea>
				  </div>
				  <div class="txt-fld">
				    <label for="">备注</label>
				    <textarea id="wremark" name="pwremark" rows="1" cols="1"></textarea>
				  </div>
				  <div class="btn-fld">
				  <input id="submit"  type="button" value="提交 »"/>
				 
			</div>
		</div>


注释掉的三条语句都执行了,但都看不到效果。

            if (IsPostBack)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('成功!');", true);
                string strWPerson = ddlWPerson.Text;
                string strWDate = Request.Form["pwdate"] == null ? "" : Request.Form["pwdate"];
                string strWProcess = Request.Form["pwprocess"] == null ? "" : Request.Form["pwprocess"];
                string strWContent = Request.Form["pwcontent"] == null ? "" : Request.Form["pwcontent"];
                string strWRemark = Request.Form["pwremark"] == null ? "" : Request.Form["pwremark"];


                int rst = workSummary.Insert(strWPerson, strWContent, strWDate, strWProcess, strWRemark);
                if (rst > 0)
                {
                   //Response.Redirect("wSummary.aspx");
                   // Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('成功!');", true);
                   // Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", "alert('成功!')", true);
                   // ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myscript", "alert('aasas')", true);
                }
               
            }
yaotomo 2012-12-23
  • 打赏
  • 举报
回复
我设置了断点,确实看到它执行了。。 真是百思不得其解。。 我把代码都贴来看看吧,有点多。。
dalmeeme 2012-12-23
  • 打赏
  • 举报
回复
是不是条件不成立,没执行?
yaotomo 2012-12-23
  • 打赏
  • 举报
回复
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myscript", "alert('成功')", true); 我这么写试了下不行。
yaotomo 2012-12-23
  • 打赏
  • 举报
回复
谢谢2L前辈回复。 我就是要在提交页面后去提示,而不是第一次提交页面(!IsPostBack)的时候。因为我要提示用户已经插入成功,这些数据都是用户提交给后台的。 我没有用UpdatePanel(ASP.NET AJAX方式),也可以使用ScriptManager.RegisterClientScriptBlock吗
dalmeeme 2012-12-23
  • 打赏
  • 举报
回复
if(!IsPostBack)是表示第一次请求页面,你点了页面上的某些东东(按钮、超链接之类)就不是第一次请求了,自然不会提示。不会提示的另一个原因可能是ajax操作不能用这个。你应该改用ScriptManager.RegisterClientScriptBlock方法,这个用于ajax的。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧