简单的使用模板列绑定dropdownlist,初学者想必都会了,但有时候,我们要做的就是在编辑的时候想让某一列定制为dropdownlist,并且根据正常情况下显示的值自动变换dropdownlist中所选的值,然后保存选择后的值到数据库或xml文件,其实要做到这样的功能并不难,只要我们学会使用datagrid的datagrid1_itemdatabound事件就行了,跟我来做个例子。
//检索数据库的函数
public dataset getzcbd()
{
try
{
dataset ds=new dataset();
string searchstring="select id,yy,bj from zc";
da=new oledbdataadapter(searchstring,conn);
da.fill(ds,"yy");
return ds;
}
catch
{
return null;
}
}
//绑定datagrid
private void bindgrid()
{
dataset ds = new dataset();
ds = us.getzcbd();
if (ds!=null)
{
this.datagrid1.datasource = ds;
this.datagrid1.databind();
}
else
{
msg.alert("加载数据错误!",page);
}
}
绑定好datagrid以后,设定模板列,让其正常显示下为label,并绑定为数据库中一id值,在编辑状态下为dropdownlist,并绑定为数据库中一name值,我们现在要做的就是当我们选择编辑时根据label的值自动从数据库中取出编号为id值的姓名,并用dropdownlist默认选中。(注释:为了方便大家学习,我给出一个简单代码的例子,供大家参考)
private void datagrid1_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
{
if (e.item.itemtype == listitemtype.edititem)
{
datarowview drv = (datarowview)e.item.dataitem;
string current = drv["label1"].tostring();
dropdownlist ddl = (dropdownlist)e.item.findcontrol("ddl");
ddl.selectedindex = ddl.items.indexof(ddl.items.findbyvalue(current));
}
if ((e.item.itemtype == listitemtype.item)||(e.item.itemtype == listitemtype.alternatingitem))
{
label t = (system.web.ui.webcontrols.label)e.item.findcontrol("label1");
string current = this.bindddl(int.parse(t.text));
e.item.cells[1].text = current;
}
}
private string bindddl(int ddd)
{
string sss = "";
if (ddd==1)
{
sss="张三";
return sss;
}
else
{
sss="李四";
return sss;
}
}