Инфраструктурный вебкомбо Typeahead предлагает - PullRequest
0 голосов
/ 30 июля 2009

Я использую 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;        
}

1 Ответ

0 голосов
/ 31 июля 2009

Этого можно добиться, просто установив следующие свойства webcombo:

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

И свяжите веб-комбо с источником данных в событии InitializeDataSource веб-комбо. а также связать веб-комбо в page_load, когда page.ispostback истинно.

Реализуйте логику поиска в вашей хранимой процедуре, например, select * from employee where emp_name like 'a%'.

Это будет извлекать записи по мере того, как вы будете вводить данные.

...