GridView后台绑定数据列表方法.docx

上传人:b****6 文档编号:7072111 上传时间:2023-01-16 格式:DOCX 页数:8 大小:16.09KB
下载 相关 举报
GridView后台绑定数据列表方法.docx_第1页
第1页 / 共8页
GridView后台绑定数据列表方法.docx_第2页
第2页 / 共8页
GridView后台绑定数据列表方法.docx_第3页
第3页 / 共8页
GridView后台绑定数据列表方法.docx_第4页
第4页 / 共8页
GridView后台绑定数据列表方法.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

GridView后台绑定数据列表方法.docx

《GridView后台绑定数据列表方法.docx》由会员分享,可在线阅读,更多相关《GridView后台绑定数据列表方法.docx(8页珍藏版)》请在冰豆网上搜索。

GridView后台绑定数据列表方法.docx

GridView后台绑定数据列表方法

GridView后台绑定数据列表方法

GridView后台绑定数据列表方法在很多时候数据绑定都是知道了数据表中的表字段来绑定GridView控件的,那时候我就有个想法希望通过表明来查询数据库中的字段来动态的绑定GirdView控件数据并提供了相关的操作列,在网上找了一些资料字按照自己的想法改进写了一个后台绑定GridView控件得得模板。

其中最主要的好处是只需要知道数据库中的列名就可以了,表头可以在一个其他文件中来和数据列表绑定/*

*2014-02-27

*GridView数据列绑定帮助文档

*用于动态添查询数据绑定到数据表中

*提供各种类型的绑定

*

***/

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

//

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;namespaceCommonLib

{

///

///GridView数据列绑定中兴

///

publicclassGridViewTemplate:

ITemplate

{

publicdelegatevoidEventHandler(objectsender,EventArgse);

publiceventEventHandlereh;

privateDataControlRowTypetemplateType;

privatestringcolumnName;

privatestringcontrolID;

privateXMLTableInfoxmTable=null;

privateBindTypebind=BindType.label;

publicGridViewTemplate()

{}

///

///构造函数

///

///绑定列类型

///绑定列名称或者需要绑定的数据库字段

///绑定字段类型控件

publicGridViewTemplate(DataControlRowTypetype,stringcolname,BindTypebin,XMLTableInfotab)

{

templateType=type;

columnName=colname;

bind=bin;

this.xmTable=tab;

}

///

///绑定事件

///

///

///

///

publicGridViewTemplate(DataControlRowTypetype,stringcontrolID,stringcolname)

{

templateType=type;

this.controlID=controlID;

columnName=colname;

}

publicvoidInstantiateIn(System.Web.UI.Controlcontainer)

{

switch(templateType)

{

caseDataControlRowType.Header:

//标题绑定

if(bind==BindType.label)

{

Literallc=newLiteral();

lc.Text=columnName;

container.Controls.Add(lc);

}

if(bind==BindType.checkbok)

{

Literallc=newLiteral();

//可以按照自己想要处理方法来写

lc.Text="全选";

container.Controls.Add(lc);

}

if(bind==BindType.editor)

{

Literallc=newLiteral();

lc.Text="编辑";

container.Controls.Add(lc);

}

if(bind==BindType.delete)

{

Literallc=newLiteral();

lc.Text="";//"删除";

container.Controls.Add(lc);

}break;

caseDataControlRowType.DataRow:

//普通列绑定

if(bind==BindType.label)

{

Labeltb=newLabel();

tb.DataBinding+=tb_DataBinding;

container.Controls.Add(tb);

}

if(bind==BindType.checkbok)

{

Literallic=newLiteral();

lic.DataBinding+=lic_DataBinding;

container.Controls.Add(lic);

}

if(bind==BindType.editor)

{

Literallec=newLiteral();

lec.DataBinding+=lec_DataBinding;

container.Controls.Add(lec);

}

if(bind==BindType.editor)

{

Literaldel=newLiteral();

del.DataBinding+=del_DataBinding;

container.Controls.Add(del);

}break;

default:

break;

}

}voiddel_DataBinding(objectsender,EventArgse)

{Literaltb=(Literal)sender;GridViewRowrow=(GridViewRow)tb.NamingContainer;

tb.ID=columnName;

//可以按照自己想要处理方法来写

tb.Text=""+xmTable.CName+"&eName="+xmTable.EName+"&id="+DataBinder.Eval(row.DataItem,columnName).ToString()+"'>删除";}voidlec_DataBinding(objectsender,EventArgse)

{

Literaltb=(Literal)sender;GridViewRowrow=(GridViewRow)tb.NamingContainer;

tb.ID=columnName;

//可以按照自己想要处理方法来写

tb.Text=""+xmTable.CName+"&eName="+xmTable.EName+"&id="+DataBinder.Eval(row.DataItem,columnName).ToString()+"'>编辑";

}voidlic_DataBinding(objectsender,EventArgse)

{Literalbtn=(Literal)sender;GridViewRowrow=(GridViewRow)btn.NamingContainer;

btn.ID=columnName;

//可以按照自己想要处理方法来写此处绑定一个复选框类名为CheckBox

btn.Text=""+DataBinder.Eval(row.DataItem,columnName).ToString()+"'/>";}

///

///2014-02-27

///张国强

///绑定字段数据列事件

///

///

///

voidtb_DataBinding(objectsender,EventArgse)

{

Labeltb=(Label)sender;try

{

GridViewRowrow=(GridViewRow)tb.NamingContainer;

tb.ID=columnName;

tb.Text=DataBinder.Eval(row.DataItem,columnName).ToString();

}

catch(Exception)

{

}

}}///

///模板类型枚举

///

publicenumBindType

{

label,checkbok,editor,delete

}}调用方法例字///

///绑定数据到GridView控件

///

///GridViews控件

///英文名称

///中文名称

///需要查询的数据字符串

publicvoidLoadInfo(GridViewNewGrid,stringeName,stringcName,stringsqlOrTop)

{

NewGrid.Columns.Clear();

XMLTableInfotb=newXMLTableInfo();

tb.CName=cName;

tb.EName=eName;

XMLBasexBase=newXMLBase();

xBase.LoadDome();

stringtableInfo=xBase.Check(eName,cName);

if(tableInfo=="")

{

return;

}

//1,拆分数据

string[]Ename=tableInfo.Split('|')[0].Split(',');

string[]Cname=tableInfo.Split('|')[1].Split('[');

xBase.LoadDome();

stringid=xBase.GetIdentity(eName,cName);

//循环数表中的列名

for(inti=0;i)

{

TemplateFieldtemp=newTemplateField();

temp.ShowHeader=true;

if(i==0)

{

temp.HeaderTemplate=newGridViewTemplate(DataControlRowType.Header,Cname[i],BindType.checkbok,tb);

temp.ItemTemplate=newGridViewTemplate(DataControlRowType.DataRow,id,BindType.checkbok,tb);

}

else

{

temp.HeaderTemplate=newGridViewTemplate(DataControlRowType.Header,Cname[i],BindType.label,tb);

temp.ItemTemplate=newGridViewTemplate(DataControlRowType.DataRow,Ename[i],BindType.label,tb);

}NewGrid.Columns.Add(temp);

}

//添加编辑列

TemplateFieldtempEditor=newTemplateField();

tempEditor.HeaderTemplate=newGridViewTemplate(DataControlRowType.Header,"操作",BindType.editor,tb);

tempEditor.ItemTemplate=newGridViewTemplate(DataControlRowType.DataRow,id,BindType.editor,tb);

NewGrid.Columns.Add(tempEditor);TemplateFieldtempDelete=newTemplateField();

tempDelete.HeaderTemplate=newGridViewTemplate(DataControlRowType.Header,"删除",BindType.delete,tb);

tempDelete.ItemTemplate=newGridViewTemplate(DataControlRowType.DataRow,id,BindType.delete,tb);

NewGrid.Columns.Add(tempDelete);stringsql="";

if(sqlOrTop.Length11)

{

sql="selecttop"+sqlOrTop+"*from"+eName+"orderby"+id+"DESC";

NewGrid.DataSource=ExcelHelper.GetDataSet(sql);

}

else

{

NewGrid.DataSource=ExcelHelper.GetDataSet(sqlOrTop);

}

NewGrid.AutoGenerateColumns=false;

NewGrid.DataBind();}ViewCode这个例子值提供了一种思路,需要有其他功能的网友可以修改代码为自己想要的表头内容形式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1