|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你觉得数据库怎么样?在SmartGrid的实践利用中,假如必要用户输出的数据是流动几项的,那末最好把这个列做成DropDownListColumn列,一是便利用户疾速输出数据,二是制止用户手动输出毛病的信息。那末我们怎样在SmartGrid中绑定DropDownListColumn列呢?
从DropDownListColumn列的类名我们就能够看出来,这一列的体现情势是与DropDownList一样的。DropDonwList有两个次要的属性,一个是Text,一个Value,Text值次要用来显现给用户看,而Value次要用来存储实践的值。好比一个用来存储区域的DropDownList控件,显现值有”长沙”,”深圳”,”北京”,而这三个区域在数据库中大概只是存储它们的编码”001”,”002”,”003”,那末我们就是用ListItem将它们组合起来。
一样,DropDownListColumn列也必要另外一个列来共同存储该列的实践的值,固然,假如你的DropDownListColumn的显现值与实践值是一样的,就能够不必要另外一个列来存储值了。
假如有对SmartGrid列还不太分明的伴侣,能够下载本站的SmartGrid匡助文档,以便查阅。
上面我们来做一个详细的实例:
SmartGrid列便可以在aspx页增加,也能够在cs页,经由过程背景代码增加,本实例我们次要解说在cs页用背景程序的办法增加.在aspx页增加的体例就一下带已往了,以下面代码:
<SmartWeb:SmartGridID="grid"runat="server"AllowAdd="False"AllowDelete="True"DataKeyField="ID">
<Columns>
<SmartWeb:DropDownListColumnColumnName="address"HeaderText="区域"EditMode="Embedding"
EditorClientScriptUrl="../../htc/droplist.htc"ExtendedProperties="<?xmlversion=1.0?><InfovalueColumn=addressvalue/>"/>
</Columns>
</SmartWeb:SmartGrid>
次要我们从背景增加,以下代码:
//声明一个DropDownListColumn列
SmartGridColumncol==newDropDownListColumn();
//将该列增加到SmartGrid中,grid为SmartGrid的ID。
this.grid.Columns.Add(col);
col.ColumnName="address";
col.HeaderText="地点";
//设置该列的htc文件,htc是SmartGrid中一个十分主要的文件,我们良多的功效都是在htc文件中
col.EditorClientScriptUrl="htc/Mydropdownlist.htc";
//下句代码中valueColumn属性设置用来存储该列的实践值的列,我们在取下拉列的实践值时,就要取valueColumn设置的列的值
col.ExtendedProperties="<?xmlversion=1.0?><InfovalueColumn=addressvalue/>";
//初始化该列的下拉框
DropDownListl=col.ControlEditorasDropDownList;
l.Items.Add(newListItem("长沙","001"));
l.Items.Add(newListItem("深圳","002"));
l.Items.Add(newListItem("北京","003"));
//初始化addressvalue列
SmartGridColumncol=col=newSmartGridColumn();
this.grid.Columns.Add(col);
col.HeaderText="区域编号";
col.ColumnName="addressvalue";
col.Visible=false;//把这一列埋没改起来,不让用户看到
如许,我们就把一个DropDownListColumn列初始化好并增加到SmartGrid中了。但这时候的address值其实不能和addressvalue联动起来。还必要htc文件撑持。上面我们看看htc文件:
<scriptlanguage="javascript">//列表框一样平常有两个值,一个是Text,一个是value。valColumn指明存储选择的value的Grid列
varvalColumn=null;
varextendedProp=element.extendedProperties;
if(typeof(extendedProp)!="undefined")
{
vardom=newActiveXObject("MSXML.DOMDocument");
dom.loadXML(extendedProp);
valColumn=dom.documentElement.getAttribute("valueColumn");
}
//当分开编纂时,依据编纂器的内容给相干的单位格赋值
functiongetValue()
{
varr=grid.row;
varval=element.options[element.selectedIndex].value;
//假如有贮存value的列,则将以后选择项的值放到该列中
if(valColumn!=null)
{
grid.setCellValue(r,valColumn,val);
}
returnelement.options[element.selectedIndex].text;
}
//当进进编纂时,依据以后单位格的内容,给编纂器赋值
functionsetValue(vVal)
{
varr=grid.row;
varval=vVal;
//假如有贮存value的列,则从该单位格取值
if(valColumn!=null)
{
val=grid.getCellValue(r,valColumn);
}
varoptions=element.options;
varlength=options.length;
for(vari=0;i<length;i++)
{
varoption=options;
if(option.value==val)
{
option.selected=true;
return;
}
}
}
</script>
从下面代码中能够看出来,在htc中,利用了SmartGrid的getCellValue与setCellValue办法,将两列的值真实的联动起来了。
好了,一个SmartGrid的下拉列终究完成了!呵呵,那你就关注微软的招聘信息以及别人的招聘经验啊,还有也不一定去做技术的,你如果真的想去就多了解了解。(其实我的意思是说想到微软做技术是很不容易的。 |
|