[导入]NetAdvantage 2007vol2中WebCombo实现AutoComplete效果,并实现“大小写敏感”
NetAdvantage 2007 vol 2中增加了很多的AJAX效果,尤其是那个WebCombo的AJAX效果不错。
实现起来非常方便,只要把WebCombo属性如下设置:
所以现在只能手工添加了,如:
然后在后台添加一个这样的方法:
就这样,一切都搞定了,我的例子中可以实现输入一个“i”字符,就可以提示可选项了:
在这过程中我还发现了一个问题,就是“大小写敏感”
默认的话,控件在HTML中是有“<columns>”节的:
这个默认有的话,那就是“大小写不敏感”,这可能是大部分人需要的效果吧。
但我无意间发现,如果去掉“<columns>”节的信息后,就会变成“大小写敏感”了!!
这可能也是有些人反而需要的。
总之,这是一个没有道理的地方啊,也算是BUG吧。我当时在NetAdvantage的官方网站上都没有找到这个规律。
特此供大家参考!
文章来源:http://www.cnblogs.com/tintown/archive/2007/12/21/1009675.html
实现起来非常方便,只要把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();
}
{
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" />
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的官方网站上都没有找到这个规律。
特此供大家参考!
文章来源:http://www.cnblogs.com/tintown/archive/2007/12/21/1009675.html