UpdatePanel 弹出提示的几种方法

 最近在项目里 需要用到altas,本人也是新手,老用最简单的updatepanel,在注册脚本时也遇到了困难,无法注册。本来是在updatepanel中放了一 个gridview,偶想在girdview中一个模板列点击弹出一个窗体,注册window.open()来解决问题。本来不是在 updatepanel中,所以用ClientScript.RegisterStartupScript直接注册挺好使。

  在拖入updatepanel后发现无法注册脚本,想想RegisterStartupScript本来是在页面加载时启动js的,在updatepanel中部分刷新,肯定是无法注册的。

  后来发现了ScriptManager.RegisterStartupScript方法,挺好使,呵呵。

  ScriptManager.RegisterClientScriptBlock(UpdatePanelName, typeof(UpdatePanel), "标识key", "脚本", true);

  下面是一个demo,模板列定义如下

ContractedBlock.gif ExpandedBlockStart.gif Code
 1<asp:TemplateField HeaderText="客户ID">
 2  
 3   <ItemTemplate>      
 4  
 5    <asp:LinkButton ID="linkbtnCID" runat="server" Text='<%# Eval("CID") %>' CommandName="linkbtnCID"  >           </asp:LinkButton>
 6  
 7   </ItemTemplate>
 8  
 9</asp:TemplateField>
10  
11 在GridView对应的RowCommand事件中如下操作:
12  
13protected void gvClientInfo_RowCommand(object sender, GridViewCommandEventArgs e)
14  
15ExpandedBlockStart.gifContractedBlock.gif  {
16  
17    //如果是linkButton被点击
18  
19    if(e.CommandName.Equals("linkbtnCID"))
20  
21ExpandedSubBlockStart.gifContractedSubBlock.gif    {
22  
23      LinkButton lbtn = (LinkButton)e.CommandSource;
24  
25      GridViewRow dgRow = (GridViewRow)lbtn.Parent.Parent;
26  
27      string tmpText = lbtn.Text.ToString();     
28  
29      tmpText ="window.open('customerDetailsInfo.aspx?CID=" + tmpText + "' ,'newwindow','height=550,
30  
31        width=700, menubar=no ')";
32  
33      ScriptManager.RegisterStartupScript(this.UpdatePanel2, this.GetType(), "click", tmpText, true);   
34  
35    }

36  
37  }

 

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

 

转载于:https://www.cnblogs.com/KivenSun/articles/1434379.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值