0

我正在infragistics webcombo使用typeahead suggest.

问题是我能够WebCombo1_InitializeDataSource使用 . xmlReq,但数据在webcombo.

下面是我正在使用的一段代码:

<igcmbo:WebCombo ID="WebCombo1" runat="server" EnableXmlHTTP="True" Editable="True"
                            ComboTypeAhead="Suggest">
                            <Columns>                              
                            <ClientSideEvents EditKeyUp="WebCombo1_EditKeyUp">
                            </ClientSideEvents>
                        </igcmbo:WebCombo>                            

Javascript函数:

function WebCombo1_EditKeyUp(webComboId,newValue,keyCode) 
   {
       var oWebCombo1=igcmbo_getComboById(webComboId)

        xmlReq = null;
        if(window.XMLHttpRequest) xmlReq = new XMLHttpRequest();
            else if(window.ActiveXObject) xmlReq = new ActiveXObject("Microsoft.XMLHTTP");                          

        var search=newValue&&newValue.length&&newValue.length>0?newValue:"";                        
        xmlReq.open("GET","ActivityManagement.aspx?searchString="+search,true);    
        xmlReq.send(null);
   }

后面的代码:

void WebCombo1_InitializeDataSource(object sender, Infragistics.WebUI.WebCombo.WebComboEventArgs e)
{
    string str = "";
    if (this.Request.QueryString["searchString"] != null)
    {
        str = this.Request.QueryString["searchString"].ToUpper();
    }
    else str = "00";
    DataTable dtProducts = OperationsDataAccess.GetProductList(str);
    string rowFilter = "DeleteFlag = 0";
    dtProducts.DefaultView.RowFilter = rowFilter;
    WebCombo1.DataSource = dtProducts.DefaultView;
    WebCombo1.DataTextField = "Name";
    WebCombo1.DataValueField = "Id";
    WebCombo1.DataBind();
    WebCombo1.DropDownLayout.RowSelectors = RowSelectors.No;        
}
4

1 回答 1

0

您可以通过简单地设置以下属性来实现这一点webcombo

EnableXmlHTTP="True" 
Editable="True"
ComboTypeAhead="Suggest"

并在 webcombo 事件中将 web 组合与数据源绑定,并在为 true时InitializeDataSource绑定 webcombo 。page_loadpage.ispostback

在存储过程中实现搜索逻辑,例如select * from employee where emp_name like 'a%'.

这将在您输入数据时检索记录。

于 2009-07-31T12:05:20.863 回答