利用客户端脚本的优势,我们可以创建出可以拖动列,改变列宽度,显示、隐藏列的XP风格的 DataGrid,下面就是所有的代码。自己调试时请注意修改eMeng.Exam.UltraGrid路径。

查看例子

UltraGrid.aspx

XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子

 XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子。

UltraGrid.aspx.cs

using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.OleDb; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace eMeng.Exam.UltraGrid { /// /// UltraGrid 的摘要说明。本例子演示了如何创建可排序、可拖放、可调整宽度的XP风格的DataGrid。 /// 出自:【孟宪会之精彩世界】 /// public class UltraGrid : System.Web.UI.Page { protected System.Web.UI.HtmlControls.HtmlGenericControl gridRow; protected System.Web.UI.WebControls.Literal RowItem; protected System.Web.UI.HtmlControls.HtmlGenericControl coolUltraGrid1; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 coolUltraGrid1.Attributes.Add("class","coolUltraGrid"); coolUltraGrid1.Attributes.Add("style","WIDTH: 100%; HEIGHT: 400"); coolUltraGrid1.Attributes.Add("borderStyle","2"); coolUltraGrid1.Attributes.Add("altRowColor","oldLace"); coolUltraGrid1.Attributes.Add("selectionStyle","1"); /// 请根据你的数据库的设置,修改这里的数据库连接字符串和查询语句。其它不要修改。 OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\xxx.mdb"); cn.Open(); string sqlstring = "SELECT TOP 30 D.Title As 文档标题,D.CreateDate as 发布时间,S.Title AS 所属栏目 "; sqlstring += "FROM Document D,Subject S WHERE D.pid=S.id ORDER BY D.CreateDate DESC"; OleDbCommand cmd = new OleDbCommand(sqlstring,cn); OleDbDataReader dr; dr=cmd.ExecuteReader(CommandBehavior.CloseConnection); /// ///组合表头 /// int FieldNumber = dr.FieldCount; int ColWidth,Tmp = 0; if(FieldNumber == 0) Response.End(); ColWidth = (int)100/FieldNumber; string TableHeader = ""; for(int i=0;i"+dr.GetName(i).ToString()+""; else TableHeader +=""+dr.GetName(i).ToString()+""; Tmp+=ColWidth; } } gridRow.InnerHtml=TableHeader; int RowNumber = 1; TableHeader = "

"; while(dr.Read()) { TableHeader += "

"; for(int i=0;i"+dr.GetValue(i).ToString()+""; } TableHeader += "

"; RowNumber++; } TableHeader += "

"; RowItem.Text=TableHeader; cn.Close(); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }

转载于:https://www.cnblogs.com/xuxianpeng/archive/2006/10/31/545587.html

XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子相关推荐

  1. 使用react-draggable和react-resizable实现Ant Design Modal的拖动和拖拽改变宽度

    文章目录 使用react-draggable和react-resizable实现Ant Design Modal的拖动和拖拽改变宽度 需求 实现 参考代码 参考 使用react-draggable和r ...

  2. 如何在Windows 7中获得快速,强大的XP风格的搜索

    Are you one of the many people frustrated with the way the search utility changed in Windows 7? Hand ...

  3. Numpy 数组复合排序——mX4列,根据多列组合排序

    Numpy 数组复合排序--mX4列,根据多列组合排序 一. Numpy 仅根据某列对 array(mX4)整体排序用argsort import numpy as npdata = np.array ...

  4. datagridview 点击列标题排序

    开发winform中,平时经常用到数据列表,我们大多选用datagridview,但是此控件本身没有排序的功能.参阅网上资料.留下标记,以后备用. datagridview的数据显示一般是通过数据绑定 ...

  5. pandas使用sort_values函数对dataframe的日期数据列进行排序(设置ascending参数进行正序或者倒序排序)

    pandas使用sort_values函数对dataframe的日期数据列进行排序(设置ascending参数进行正序或者倒序排序) 目录

  6. [转]VC无负担实现XP风格界面

    VC无负担实现XP风格界面 有件事情必须说一下,按照上面的方法,test.exe必须先调用InitCommonControls函数(已经废除,不建议使用)或者InitCommonControlsEx函 ...

  7. python列表按照指定顺序排序-Python3实现对列表按元组指定列进行排序的方法分析...

    本文实例讲述了Python3实现对列表按元组指定列进行排序的方法.分享给大家供大家参考,具体如下: Python版本: python3.+ 运行环境: Mac OS IDE: pycharm Pyth ...

  8. 如何使得WIN7下用VS2010做出的MFC程序具有XP风格(摆脱传统界面的效果)

    VS2010建一个MFC的工程后,运行生成的对话框还有按钮之类的资源控件的风格是XP以前的传统的界面风格,效果不太令人满意.                 比较上面的图片,可以明显看到它们的不同.要 ...

  9. 【MFC】定义XP风格的工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 网上的许多软件都具有漂 ...

最新文章

  1. 刘知远:近年来开源的算法代码、工具包列表
  2. 学习如何写 Bug 的一天! | 每日趣闻
  3. crtmpserver流媒体服务器的介绍与搭建
  4. python读取pdf表格_【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比...
  5. HDU 4279 - Number
  6. 10问10答:你真的了解线程池吗?
  7. linux下日志晒选打包,Linux 文件日志筛选操作
  8. django objects.filter().exists()
  9. 孟小峰:大数据管理与数据思维
  10. nginx 启动报错 “/var/run/nginx/nginx.pid failed” 解决方法
  11. MQTT协议学习笔记
  12. MacOS新版本,不能装老版本Xcode
  13. NC-SI的简单理解
  14. android 手机存储位置设置,如何将红米手机外置SD卡设定为默认存储
  15. java 集成极光推送
  16. Eclipse 简介
  17. Redis——Redis 的发布和订阅
  18. 模板的超详细的案例讲解(上)
  19. 密码学的安全性浅析-4
  20. 数字滚动效果(number-flip)

热门文章

  1. [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面
  2. 002-docker17.06安装
  3. 运维调试记录:Opendaylight铍版本开发环境搭建流程
  4. 内存管理 初始化(七)kmem_cache_init_late 初始化slab分配器(下)
  5. Android发送邮件
  6. Winform下载文件
  7. Ubuntu设置root密码
  8. rocketmq之producer解析
  9. 从前端角度来看网页设计
  10. 三目运算符 改变a标签的class属性