很多朋友在使用UltraWebGrid中希望直接绑定一个dropdownlist,通过直接选择文本,而实际选择的是该文本对应
的值的方式来展现webgrid,但是一些朋友,发现自己绑定了,但是前台页面显示的是值,双击之后才出现下来框。百思
不得其解。其实真是原因是这样的。
一般我们这样绑定
UltraWebGrid1.Columns[
3
].Type
=
ColumnType.DropDownList;
ValueList contactType = UltraWebGrid1.Columns[ 3 ].ValueList;
contactType.DataSource = dataset2;
contactType.DataMember = " ContactTypes " ;
contactType.ValueMember = " ContactTypeID " ;
contactType.DisplayMember = " ContactType " ;
contactType.DataBind();
ValueList contactType = UltraWebGrid1.Columns[ 3 ].ValueList;
contactType.DataSource = dataset2;
contactType.DataMember = " ContactTypes " ;
contactType.ValueMember = " ContactTypeID " ;
contactType.DisplayMember = " ContactType " ;
contactType.DataBind();
DataSource 设定数据源,DataMember设定数据表,ValueMember值列,DisplayMember显示文本列。此处
contactType.DataMember="ContactTypes"中ContactTypes表是通过执行“select * from ContactTypes”
得到的
如果你的ValueList绑定的表是通过如下方式得到的
DataTable vltbl
=
new
DataTable(
"
vltbl
"
);
vltbl.Columns.Add( " value " , typeof ( int ));
vltbl.Columns.Add( " text " , typeof ( string ));
vltbl.Rows.Add( 0 , " 男 " );
vltbl.Rows.Add( 1 , " 女 " );
dataset1.Tables.Add(vltbl);
vltbl.Columns.Add( " value " , typeof ( int ));
vltbl.Columns.Add( " text " , typeof ( string ));
vltbl.Rows.Add( 0 , " 男 " );
vltbl.Rows.Add( 1 , " 女 " );
dataset1.Tables.Add(vltbl);
,则你可能在前台页面上看到显示的是0或1,而不是你想要的“男”或“女”,即使你将:
也是枉然。其实真正的原因是因为,你在查询数据的时候,或者将结果集绑定给UltraWebGrid的时候就要将0或1,转化
为你想要的“男”或“女”。而不是0和1。