ASP.NET2.0中动态添加GridView模板列
来源:互联网 发布:百度端口天龙八部 编辑:程序博客网 时间:2024/04/30 04:25
动态添加列,关键是实现ITemplate.InstantiateIn方法。下面是一个添加GridView模板列的例子。
C#代码
<%...@PageLanguage="C#"%>
<%...@ImportNamespace="System.Data"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<scriptrunat="server">...
ICollectionCreateDataSource()
...{
DataTabledt=newDataTable();
DataRowdr;
dt.Columns.Add(newDataColumn("id",typeof(Int32)));
dt.Columns.Add(newDataColumn("text",typeof(string)));
for(inti=0;i<6;i++)
...{
dr=dt.NewRow();
dr[0]=i;
dr[1]="列表项目"+i.ToString();
dt.Rows.Add(dr);
}
DataViewdv=newDataView(dt);
returndv;
}
publicclassGridViewTemplate:ITemplate
...{
privateDataControlRowTypetemplateType;
privatestringcolumnName;
publicGridViewTemplate(DataControlRowTypetype,stringcolname)
...{
templateType=type;
columnName=colname;
}
publicvoidInstantiateIn(System.Web.UI.Controlcontainer)
...{
switch(templateType)
...{
caseDataControlRowType.Header:
Literallc=newLiteral();
lc.Text=columnName;
container.Controls.Add(lc);
break;
caseDataControlRowType.DataRow:
DropDownListdrr=newDropDownList();
drr.ID="dropdown";
drr.AppendDataBoundItems=true;
drr.Items.Add(newListItem("-----请选择------",""));
drr.Items.Add(newListItem("AA","a"));
drr.Items.Add(newListItem("BB","b"));
drr.Items.Add(newListItem("CC","c"));
container.Controls.Add(drr);
break;
default:
break;
}
}
}
protectedvoidPage_Load(objectsender,EventArgse)
...{
if(!IsPostBack)
...{
TemplateFieldcustomField=newTemplateField();
customField.ShowHeader=true;
customField.HeaderTemplate=newGridViewTemplate(DataControlRowType.Header,"动态添加列");
customField.ItemTemplate=newGridViewTemplate(DataControlRowType.DataRow,"");
GridView1.Columns.Add(customField);
GridView1.DataSource=CreateDataSource();
GridView1.DataBind();
}
}
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
...{
if(e.Row.RowType==DataControlRowType.DataRow)
...{
//可以在这里访问数据库的其它字段的值,可以设置默认选择项,具体应用,看自己的发挥了。
//下面只是例子,举一反三,不再费话了
DataRowViewgv=(DataRowView)e.Row.DataItem;
intitemSeleted=Int32.Parse(gv.Row["id"].ToString())>3?0:Int32.Parse(gv.Row["id"].ToString());
DropDownListdr=(DropDownList)e.Row.FindControl("dropdown");
dr.SelectedIndex=itemSeleted;
}
}
</script>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title>GridView动态添加模板列的例子</title>
</head>
<body>
<formid="form1"runat="server">
<ASP:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"
OnRowDataBound="GridView1_RowDataBound">
<Columns>
<ASP:BoundFieldHeaderText="标题" DataField="text"/>
</Columns>
</ASP:GridView>
</form>
</body>
</html>
- ASP.NET2.0中动态添加GridView模板列
- ASP.NET2.0中给GridView动态添加模板列并自动绑定数据
- ASP.NET2.0中给GridView动态添加模板列并自动绑定数据
- ASP.NET 2.0 中动态添加 GridView 模板列的...
- ASP.NET 2.0 中动态添加 GridView 模板列
- asp.net2.0操作GridView 的模板列
- GridView动态添加模板列
- GridView动态添加模板列
- GridView动态添加模板列
- GridView动态添加模板列
- ASP.NET 2.0 中动态添加 GridView 模板列的例子
- ASP.NET 2.0 中动态添加 GridView 模板列的例子
- ASP.NET 2.0中动态添加 GridView 模板列的例子
- ASP.NET 2.0中动态添加 GridView 模板列的例子
- ASP.NET 2.0中动态添加 GridView 模板列的例子
- ASP.NET 2.0 中动态添加 GridView 模板列的例子
- ASP.NET 2.0 中动态添加 GridView 模板列的例子
- ASP.NET 2.0 中动态添加 GridView 模板列的例子
- 用PHP实现Ftp用户的在线管理
- 十天学会ASP.net之第一天
- 用PHP程序实现删除目录的三种方法实例
- 十天学会ASP.net之第二天
- 新手入门:PHP网站开发中常见问题汇总
- ASP.NET2.0中动态添加GridView模板列
- 用动态网页技术PHP打造个人网站全攻略
- ASP.NET中如何防范SQL注入式攻击
- 问题解决:无法载入MYSQL扩展,请检查PHP配置
- .Net中VSS实现版本控制管理的方法
- 论Web2.0时代PHP的地位
- ASP.NET2.0中GridView无限层复杂表头的实现
- 用PHPINFO来实现PHP的配置统计过程
- ASP.NET2.0中将GridView导出到Excel文件中