Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > ASP.NET中为DataGrid动态创建模板列
【标  题】:ASP.NET中为DataGrid动态创建模板列
【关键字】:ASP.NET,DataGrid
【来  源】:http://blog.csdn.net/franzhsu/archive/2006/10/30/1357658.aspx

ASP.NET中为DataGrid动态创建模板列

Your Ad Here

为DataGrid动态创建模板列,首先要实现ITemplate接口:

public class MyDataGridTemplate : System.Web.UI.ITemplate
{
 ListItemType _litType;
 object _objData;
 
 public MyDataGridTemplate(ListItemType litType, object objData)
 {
  _litType = litType;
  _objData = objData;
 }

 public void InstantiateIn(System.Web.UI.Control container)
 {
  Literal ltr = new Literal();
  TextBox txt = new TextBox();
  
  switch(_litType)
  {
   case ListItemType.Header:
    ltr.Text = "<b>" + _objData.ToString() + "</b>";
    container.Controls.Add(ltr);
    break;
   case ListItemType.Item:
    ltr.Text = _objData.ToString();
    container.Controls.Add(ltr);
    break;
   case ListItemType.EditItem:
    container.Controls.Add(txt);
    break;
   case ListItemType.Footer:
    ltr.Text = "<i>" + _objData.ToString() + "</i>";
    container.Controls.Add(ltr);
    break;
  }
 }
}

现在就可以动态创建模板列了:

TemplateColumn tc;

tc = new TemplateColumn();
tc.HeaderText = "列1";
tc.ItemTemplate = new MyDataGridTemplate(ListItemType.Item, "列1");
dg.Columns.Add(tc);

tc = new TemplateColumn();
tc.HeaderText = "列2";
tc.ItemTemplate = new MyDataGridTemplate(ListItemType.Item, "列2");
dg.Columns.Add(tc);

以上代码的效果与下列代码相同:

<asp:TemplateColumn HeaderText="列1">
<ItemTemplate>
 <asp:Literal Runat="server" Text="列1"></asp:Literal>
</ItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderText="列2">
<ItemTemplate>
 <asp:Literal Runat="server" Text="列2"></asp:Literal>
</ItemTemplate>
</asp:TemplateColumn>


franz

franz.hsu@gmail.com
www.qingdaochina.com

[C#]几种字符串反转方法效率比较:【上一篇】
(c# Data Access 1) 与数据库连接:【下一篇】
【相关文章】
  • ASP.NET AJAX - Q & A专用文章
  • ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)
  • ASP.NET AJAX入门系列(3):使用ScriptManagerProxy控件
  • ajax和asp.net的配置文件
  • 本周ASP.NET英文技术文章推荐[10/21 – 10/27]
  • Ajax打造仿WINDWS无限级菜单树(asp.net2.0+C#+Access)
  • ASP.NET AJAX(Atlas)现存的一些常见问题以及解决方案[持续更新]
  • DataGrid的小技巧
  • 关于DataGrid删除时添加确认对话框的问题
  • asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例
  • 【随机文章】
  • Windows Service的安装,卸载,启动以及调试.
  • 操作系统中任务调度的实现
  • 编写另一个printf
  • SQL select的基本语法
  • 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
  • unix网络管理-配置IP连通性
  • 12个最重要的J2EE最佳实践(2)
  • rt_task(p)
  • VSFTPD+MYSQL编译安装
  • 利用.NET的Reflection增强对象工厂的扩展性
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.