ASP.NET 2.0 中动态添加 GridView 模板列的...

来源:互联网 发布:抽奖软件 内定 编辑:程序博客网 时间:2024/05/13 12:54
 
  登陆 | 注册

进入主题社区 按内容查找 按标题查找
 
你的位置: 天极主题社区 → 程序开发 → .NET → ASP.NET源码

ASP.NET 2.0 中动态添加 GridView 模板列的...

1楼  发表:ASP.NET 2.0 中动态添加 GridView 模板列的例子
独行客 于 2006-09-21 15:50 赞成 反对  回复 报警
<%...@ Page Language="C#" %>
<%...@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>

<script runat="server">...
 ICollection CreateDataSource()
 ...{
   DataTable dt = new DataTable();
   DataRow dr;
   dt.Columns.Add(new DataColumn("id", typeof(Int32)));
   dt.Columns.Add(new DataColumn("text", typeof(string)));
   for (int i = 0; i < 6; i++)
   ...{
     dr = dt.NewRow();
     dr[0] = i;
     dr[1] = "列表项目 " + i.ToString();
     dt.Rows.Add(dr);
   }
   DataView dv = new DataView(dt);
   return dv;
 }

 public class GridViewTemplate : ITemplate
 ...{
   private DataControlRowType templateType;
   private string columnName;

   public GridViewTemplate( DataControlRowType type, string colname )
   ...{
     templateType = type;
     columnName = colname;
   }

   public void InstantiateIn( System.Web.UI.Control container )
   ...{
     switch (templateType)
     ...{
       case DataControlRowType.Header:
         Literal lc = new Literal();
         lc.Text = columnName;          
         container.Controls.Add(lc);          
         break;
       case DataControlRowType.DataRow:
         DropDownList drr = new DropDownList();
         drr.ID = "dropdown";
         drr.AppendDataBoundItems = true;
         drr.Items.Add(new ListItem("-----请选择------",""));
         drr.Items.Add(new ListItem("AA", "a"));
         drr.Items.Add(new ListItem("BB", "b"));
         drr.Items.Add(new ListItem("CC", "c"));
         container.Controls.Add(drr);
         break;
       default:
        break;
     }
   }
 }
 
 protected void Page_Load(object sender, EventArgs e)
 ...{
   if (!IsPostBack)
   ...{
     TemplateField customField = new TemplateField();
     customField.ShowHeader = true;
     customField.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "动态添加列");
     customField.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "");
     GridView1.Columns.Add(customField);
     GridView1.DataSource = CreateDataSource();
     GridView1.DataBind();
   }
 }

 protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e )
 ...{
   if (e.Row.RowType == DataControlRowType.DataRow)
   ...{
     //可以在这里访问数据库的其它字段的值,可以设置默认选择项,具体应用,看自己的发挥了。
     //下面只是例子,举一反三,不再费话了
     DataRowView gv = (DataRowView)e.Row.DataItem;
     int itemSeleted = Int32.Parse(gv.Row["id"].ToString()) > 3 ? 0 : Int32.Parse(gv.Row["id"].ToString());
     DropDownList dr = (DropDownList)e.Row.FindControl("dropdown");
     dr.SelectedIndex = itemSeleted;
   }
 }
</script>

<html xmlns="http://www.w3.org/1999/xhtml";>
<head id="Head1" runat="server">
 <title>GridView动态添加模板列的例子</title>
</head>
<body>
<form id="form1" runat="server">
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    OnRowDataBound="GridView1_RowDataBound">
   <Columns>
     <asp:BoundField HeaderText="标题"  DataField="text"/>
   </Columns>
 </asp:GridView>
</form>
</body>
</html>
本主题共有回贴0条。 共有[0]条记录,0/0页。 返回主题列表
发表评论:(Html:禁止,UBB:允许)
笔名: 登录   ( 可输入2000 个字 )
  粗体 图片 Flash图片 Media Player视频文件 realplay视频文件 超级连接 Email连接 Shockwave文件 引用文字
 
最近更新: [2006-11-30 01:13]
  • 全面体验Windows Vista的系统还原功能
  • 无法接收QQ密码修改确认邮件的解决办法
  • 网上赚钱的确可行 关键是把握正确方法
  • QQ密码保护申诉处理结果的通知方式
  • 网络赚钱七种方案介绍
  • 赛门铁克收购IMlogic 进军IM保护市场
  • 网络赚钱新手生存手册
  • 网上赚钱新手必备手册 网赚防骗守则
  • 网赚315 火眼金睛看穿骗子公司
  • QQ密码丢失后能做的事情:快速找回密码
  • 火爆热评:
  • [2219] 百度贴吧播“黄”种 色情图片随手可得
  • [1177] PP点点通 2005
  • [1153] 天极QQ专区留言板
  • [1103] 腾讯QQ应用技巧宝典
  • [891] 赛门铁克收购IMlogic 进军IM保护市场
  • [608] 摩托罗拉 V3
  • [594] 奥斯卡最佳影片《阿甘正传》
  • [473] 《口袋妖怪绿宝石》中文版
  • [456] 诺基亚 7610
  • [416] 天极QQ图片酷 免费下载精彩挡不住
  • 优秀专题推荐
    ASP.NET初学者入门最佳实践 
    完美的C++:C++/CLI
    基于Visual C++.NET的GDI+编程快速入门
    C#开发终端式短信的原理和方法
    ASP.NET创建XML Web服务全接触

    pic
    天极Chinabyte:新闻 | 评论 | 通信 | 互联网 | 科学 | E企业 | 解决议案 | 商用系统 | 服务器 | 存储 | 原创 | 他说 | ERP | CRM
    天极Yesky: 消费导购商情 | 手机 | 数码 | MP3 | 数码相机 | 笔记本 | 硬件 | 品牌机 | 网络 | 投影机 | 扫描仪 | 数字家庭 | 评测
    天极Yesky: IT技术软件 | Windows | DIY | 网管 | Linux | 设计 | Photoshop | 交换技术 | 开发 | MSDN | 安全 | 教育 | 论坛
    天极Yesky: 数字生活e时代 | 游戏 | 网游 | 竞技 | 电脑 | 电视 | 攻略 | 动漫 | COSPLAY | 图片 | 网摘 | 博客 | 下载
    IT专家网:数据库 | 移动计算 | 网络 | 安全 | 存储 | Windows安全 | 中小企业IT | Exchange | Web服务 | CIO | WinSystem | Whatis
    欢迎投稿 | 天极服务 | 关于我们 | 电子杂志 | RSS订阅 | 友情合作 | 加入我们 | 网站地图 | 设定天极为首页
    Copyright (C) 1999-2005 Chinabyte.com, All Rights Reserved 版权所有 天极网络

    渝ICP证B2-20030003号如有意见请与我们联系 Powered by 天极内容管理平台CMS4i
     
    原创粉丝点击