NetAdvantage 2007 vol 2中增加了很多的AJAX效果,尤其是那个WebCombo的AJAX效果不错。
实现起来非常方便,只要把WebCombo属性如下设置:
ComboTypeAhead="Suggest" Editable="True" EnableXmlHTTP="True"
但是2007vol2中有个BUG,会提示必须要绑定一个“ OnInitializeDataSource”的事件。
所以现在只能手工添加了,如:
ComboTypeAhead="Suggest" Editable="True" EnableXmlHTTP="True" OnInitializeDataSource="WebCombo2_InitializeDataSource"
然后在后台添加一个这样的方法:
protected
void
WebCombo2_InitializeDataSource(
object
sender, Infragistics.WebUI.WebCombo.WebComboEventArgs e)
{
DataTable dt
=
new
DataTable();
dt.Columns.Add(
"
name
"
);
dt.Rows.Add(
new
string
[] {
"
ISTJ
"
});
dt.Rows.Add(
new
string
[] {
"
ISFJ
"
});
dt.Rows.Add(
new
string
[] {
"
ESTP
"
});
dt.Rows.Add(
new
string
[] {
"
ESFP
"
});
dt.Rows.Add(
new
string
[] {
"
INTJ
"
});
dt.Rows.Add(
new
string
[] {
"
INFJ
"
});
dt.Rows.Add(
new
string
[] {
"
ENTP
"
});
dt.Rows.Add(
new
string
[] {
"
ENFP
"
});
dt.Rows.Add(
new
string
[] {
"
ISTP
"
});
dt.Rows.Add(
new
string
[] {
"
INTP
"
});
dt.Rows.Add(
new
string
[] {
"
ESTJ
"
});
dt.Rows.Add(
new
string
[] {
"
ENTJ
"
});
dt.Rows.Add(
new
string
[] {
"
ISFP
"
});
dt.Rows.Add(
new
string
[] {
"
INFP
"
});
dt.Rows.Add(
new
string
[] {
"
ESFJ
"
});
dt.Rows.Add(
new
string
[] {
"
ENFJ
"
});
this
.WebCombo2.DataSource
=
dt;
this
.WebCombo2.DataTextField
=
"
name
"
;
this
.WebCombo2.DataValueField
=
"
name
"
;
this
.WebCombo2.DataBind();
}
就这样,一切都搞定了,我的例子中可以实现输入一个“i”字符,就可以提示可选项了:
在这过程中我还发现了一个问题,就是“大小写敏感”
默认的话,控件在HTML中是有“<columns>”节的:
<
igcmbo:WebCombo
ID
="WebCombo2"
runat
="server"
BorderColor
="#9BB7E0"
BorderStyle
="Solid"
BorderWidth
="1px"
CssClass
="igWebComboMain"
DropImage1
="~/ig_common/20072CLR20/Styles/Office2007Blue/WebCombo/office2007ddup.gif"
DropImage2
="~/ig_common/20072CLR20/Styles/Office2007Blue/WebCombo/office2007dddown.gif"
DropImageXP1
="~/ig_common/20072CLR20/Styles/Office2007Blue/WebCombo/office2007ddup.gif"
DropImageXP2
="~/ig_common/20072CLR20/Styles/Office2007Blue/WebCombo/office2007dddown.gif"
Font-Names
="Tahoma"
Font-Size
="8pt"
Height
="18px"
HideDropDowns
="False"
SelBackColor
="234, 242, 251"
SelForeColor
="Black"
Version
="4.00"
Width
="120px"
ComboTypeAhead
="Suggest"
Editable
="True"
EnableXmlHTTP
="True"
OnInitializeDataSource
="WebCombo2_InitializeDataSource"
>
<
Columns
>
<
igtbl:UltraGridColumn
>
<
header
caption
="Column0"
></
header
>
</
igtbl:UltraGridColumn
>
</
Columns
>
<
ExpandEffects
ShadowColor
="LightGray"
/>
这个默认有的话,那就是“大小写不敏感”,这可能是大部分人需要的效果吧。
但我无意间发现,如果去掉“<columns>”节的信息后,就会变成“大小写敏感”了!!
这可能也是有些人反而需要的。
总之,这是一个没有道理的地方啊,也算是BUG吧。我当时在NetAdvantage的官方网站上都没有找到这个规律。
特此供大家参考!