听棠.NET

用积极乐观的心态,面对压力
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
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的官方网站上都没有找到这个规律。
特此供大家参考!