开发者社区> 杰克.陈> 正文

NET使用了UpdatePanel后如何弹出对话框!

简介: 原文: NET使用了UpdatePanel后如何弹出对话框! 在ajax中的UpdatePanel弹出对话窗,可以使用: ScriptManager.RegisterStartupScript(UpdatePanel1, this.
+关注继续查看
原文: NET使用了UpdatePanel后如何弹出对话框!

在ajax中的UpdatePanel弹出对话窗,可以使用:

ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "alert", "alert('更新成功!')", true);

修改后跳到另一个页面中去时,可以使用:
ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", "location.replace('UserManger.aspx');", true);

如果跳转前还有提示信息的话,则可以使用:

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "click", "alert('更新成功!');location.replace('UserManger.aspx');", true);
 
例如:ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.GetType(), "提示", "alert('购物车为空,请先购物!')", true);  
 
 protected void UpdatePanelAlert(string str_Message)
        {
            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "提示", "alert('" + str_Message + "')", true);
        }
 UpdatePanelAlert("无此代码");
/////////////////////////////////////////////////////////////////////////////////////////////
asp.net ajax框架UpdatePanel弹出提示的几种方法
2009-06-09 14:15
<asp:UpdatePanel runat="server" ID="p1">
*.cs:
Microsoft.Web.UI.ScriptManager.RegisterStartupScript(p1, this.GetType(), "click", "alert('ok')", true);

在ASP.NET的UpdatePanel中不能使用Response.write("")了,感觉不是很方便。
那就用UpdatePanel支持的方法吧!

this.ClientScript.RegisterClientScriptBlock(this.GetType(),"a","alert('ok!');",true);

for 1.0

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "click", "alert('ok')", true);
System.Web.UI.ScriptManager.RegisterStartupScript(Button1, this.GetType(), "click", "alert('ok')", true);
           


关于updatepanel中注册执行javascript

    好些天都在糊里糊涂,最近也比较懒,居然看到了个留言,永远不更新的博客一等奖,相当尴尬,哈哈。写一些最近自己或别人遇到的小问题吧。
    1、关于updatepanel注册js
    最近在项目里需要用到altas,本人也是新手,老用最简单的updatepanel,在注册脚本时也遇到了困难,无法注册。本来是在 updatepanel中放了一个gridview,偶想在girdview中一个模板列点击弹出一个窗体,注册window.open()来解决问题。本来不是在updatepanel中,所以用ClientScript.RegisterStartupScript直接注册挺好使。
    在拖入updatepanel后发现无法注册脚本,想想RegisterStartupScript本来是在页面加载时启动js的,在updatepanel中部分刷新,肯定是无法注册的。
    后来发现了ScriptManager.RegisterStartupScript方法,挺好使,呵呵。
    ScriptManager.RegisterClientScriptBlock(UpdatePanelName, typeof(UpdatePanel), "标识key", "脚本", true);
    下面是一个demo,模板列定义如下:

<asp:TemplateField HeaderText="客户ID">
     <ItemTemplate>           
       <asp:LinkButton ID="linkbtnCID" runat="server" Text='<%# Eval("CID") %>' CommandName="linkbtnCID"   >                      </asp:LinkButton>
      </ItemTemplate>
</asp:TemplateField>
  
    在GridView对应的RowCommand事件中如下操作:

protected void gvClientInfo_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        //如果是linkButton被点击
        if(e.CommandName.Equals("linkbtnCID"))
        {
            LinkButton lbtn = (LinkButton)e.CommandSource;
            GridViewRow dgRow = (GridViewRow)lbtn.Parent.Parent;
            string tmpText = lbtn.Text.ToString();         
            tmpText ="window.open('customerDetailsInfo.aspx?CID=" + tmpText + "' ,'newwindow','height=550,
                width=700, menubar=no ')";
            ScriptManager.RegisterStartupScript(this.UpdatePanel2, this.GetType(), "click", tmpText, true);     
     
        }
    }

    2、关于RegisterStartupScript,RegisterClientScriptBlock
        RegisterStartupScript 将 js嵌入到页面的底部,</form> 的前面
        RegisterClientScriptBlock 将 js嵌入到页面中开启元素 <form> 后面

    3、关于“该行已经属于另一个表”错误
       这个问是出现在不同dataTable之间的行复制出现的问题。
       看这个代码:
      
DataTable tmpdt = sodo.getDataTable("text", strSql, sp);            
dt.Rows.Add(tmpdt.Rows[0]);
   
     这个明显的错误就是tmpdt的行是一个对象引用,相当于一个指针,错误是难免的,可有以下解决办法:

DataTable tmpdt = sodo.getDataTable("text", strSql, sp);            
1、 dt.Rows.Add(tmpdt.Rows[0].ItemArray);
2、 dt.ImportRow(tmpdt.Rows[0]);

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心
本文讲的是沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心【编者的话】本文介绍了沃尔玛公司针对全球200+配送中心云化升级的具体情况,包括使用的方案、如何处理原来的虚拟机资源以及改造后的成效。
1587 0
创建交互式shell脚本对话框
创建一个消息框 一个消息框中显示一个确认按钮继续任意的文本消息。 语法: whiptail --title "<message box title>" --msgbox "<text to show>" <height> <width> 实例: #!/bin/bash whiptail --title "Test Message Box" --msgbox "Create a message box with whiptail. Choose Ok to continue." 10 60 创建一个yes/no对话框 用户输入yes或no的对话框。
1092 0
使用 Date 和 SimpleDateFormat 类表示时间
使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类。这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用: 使用 Date ...
987 0
安卓开发_使用AlertDialog实现对话框
示例: 一、确定对话框 1 AlertDialog.Builder builder = new AlertDialog.Builder(this); 2 builder.
807 0
如何使用Terraform管理容器服务Kubernetes集群之-标准版集群
#### 介绍 Terraform 是一款 Infrastructure as Code 的工具,可以将云端资源代码化。关于 Terraform 的基本介绍本文不再赘述,有兴趣的同学可以参考 [《云生态下的基础架构资源管理利器Terraform》](https://yq.aliyun.com/articles/215592) 等云栖社区的优秀文章。
1068 0
mysql update使用子查询
<div class="markdown_views"> <p>今天我像以前操作Oracle写了一个update sql:</p> <pre class="prettyprint"><code class=" hljs sql"><span class="hljs-operator"><span class="hljs-keyword">update</span> dev
2537 0
沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心
本文讲的是沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心【编者的话】本文介绍了沃尔玛公司针对全球200+配送中心云化升级的具体情况,包括使用的方案、如何处理原来的虚拟机资源以及改造后的成效。
1283 0
+关注
杰克.陈
一个安静的程序猿~
10427
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载