新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:UpdatePanel 弹出提示的几种方法

UpdatePanel 弹出提示的几种方法

新客网 XKER.COM 2008-05-07 来源:博客园 收藏本文

 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]);

标签:UpdatePanel  
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
推荐阅读
阅读排行
随机推荐
实用信息推荐