详细内容
GridView自动生成列后模板列显示位置调整的解决办法
发布日期:2012-02-17     点击:4166     字体:[ ]

如果不做调整,GridView在自动生成列后,模板列总是显示在自动生成列前面,但有时出于特殊需要,必须显示在自动生成列后面,怎么办哪,下面通过javaScript可以很好的解决这个问题:

页面代码:

[c-sharp]
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml" >  
  3. <head runat="server">  
  4.     <title>无标题页</title>  
  5.     <script type="text/javascript" language="javascript"><!--  
  6.       
  7.     //由于加上MasterPage后Gridview生成的Table的ID会变化,这里加上一个方法获取生成的Table的ID   
  8.         function getGridViewId()//获取Gridview的ID   
  9.         {  
  10.             var id;  
  11.             var tb = document.getElementsByTagName("table");  
  12.             for(var i=0;i<tb.length;i++)  
  13.             {  
  14.                 if(tb[i].id.indexOf("GridView1")!=-1)  
  15.                 {  
  16.                     id = tb[i].id;  
  17.                     break;  
  18.                 }  
  19.             }  
  20.             return id;  
  21.         }  
  22.           
  23.     //页面加载完成后隐藏第一列,同时在每一行增加一列   
  24.         window.onload=function()  
  25.         {  
  26.             var tb = document.getElementById(getGridViewId());//获取Table   
  27.             for(var i=0;i<tb.rows.length;i++)//循环Table每一行   
  28.             {  
  29. if(tb.rows[i].cells.length<=1) break;//防止分页出现tb.rows[i].cells[0]为空情况,这里要看分页怎么做,然后做相应的修改   
  30.                 var firsttd = tb.rows[i].cells[0].cloneNode(true);//克隆第一列(模板列)   
  31.                 var newtd = tb.rows[i].insertCell();//插入一个新列   
  32.         newtd.replaceNode(firsttd);//把新列用克隆的第一列置换掉   
  33.         tb.rows[i].cells[0].style.display="none";//隐藏第一列   
  34.         tb.rows[i].cells[tb.rows[i].cells.length-1].style.display="block";//设定新列显示 
  35.             }  
  36.         }  
  37.       
  38. // --></script>   
  39. </head>  
  40. <body>  
  41.     <form id="form1" runat="server">  
  42.     <div>  
  43.         <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" DataSourceID="ObjectDataSource1" Width="100%" OnRowCommand="GridView1_RowCommand">  
  44.             <Columns>……//省略GridView代码
用户评论
昵称:匿名 来自:125.110.65.*  
2012/7/6 15:33:03
我擦 下文呢.....
昵称 
内容  *
验证码   
   
Copyright © 2010 zdbase.com All Rights Reserved. 苏ICP备15039389号 可人软件设计