NetAdvantage 2007vol2中WebCombo实现AutoComplete效果,并实现“大小写敏感”

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.WebComboEventArgse)
{

DataTabledt
= 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”字符,就可以提示可选项了:
NetAdvantage 2007vol2中WebCombo实现AutoComplete效果,并实现“大小写敏感”

在这过程中我还发现了一个问题,就是“大小写敏感”
默认的话,控件在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的官方网站上都没有找到这个规律。
特此供大家参考!

你可能感兴趣的:(autocomplete)