I'd like to realize a AutoCompleteBox , the question is how to get the other values of the text in a whole line when it has been selected . The templates is re-designed.
plus,I can get DataValueField by sender.get_value(), and how to get the value in a whole field.Codes Template:
publicclassReceivingSheetDropDownItemTemplate : ITemplate{Boolean IsCompany {get;set; }Boolean IsName{get;set;}Boolean IsPhone{get;set;}Boolean IsMobile{get;set;}Boolean IsAddress{get;set;}publicReceivingSheetDropDownItemTemplate(Boolean isCompany =true, Boolean isName =true, Boolean isPhone =true, Boolean isMobile =true, Boolean isAddress =true){IsCompany =isCompany;IsName =isName;IsPhone = isPhone;IsMobile = isMobile;IsAddress = isAddress;}publicvoidInstantiateIn(Control container){if(IsCompany || IsName || IsPhone || IsMobile || IsAddress){HtmlTable table =newHtmlTable();HtmlTableRow titleRow =newHtmlTableRow();HtmlTableRow dataRow =newHtmlTableRow();titleRow.Attributes.Add("class","title");table.Attributes.Add("class","DropTable");if(IsCompany){AddBindItem(container, titleRow,"CompanyName", dataRow,"CompanyName");}if(IsName){AddBindItem(container, titleRow,"Name", dataRow,"Name");}if(IsPhone){AddBindItem(container, titleRow,"Phone", dataRow,"Phone");}if(IsMobile){AddBindItem(container, titleRow,"Mobile", dataRow,"Mobile");}if(IsAddress){AddBindItem(container, titleRow,"Address", dataRow,"Address");}table.Controls.Add(titleRow);table.Controls.Add(dataRow);container.Controls.Add(table);}}privatevoidAddBindItem(Control container, HtmlTableRow titleRow, String strTitle, HtmlTableRow dataRow, String strContactName){HtmlTableCell cellTitle =newHtmlTableCell();cellTitle.InnerHtml = strTitle;titleRow.Cells.Add(cellTitle);HtmlTableCell cellData =newHtmlTableCell();Label lab =newLabel();lab.Text = (string)DataBinder.Eval((containerasTelerik.Web.UI.AutoCompleteBox.DropDownItem).DataItem, strContactName);cellData.Controls.Add(lab);dataRow.Controls.Add(cellData);}publicvoidRadAutoCompleteBox_DropDownTemplateNeeded(objectsender, AutoCompleteDropDownItemEventArgs e){e.Item.Template =newReceivingSheetDropDownItemTemplate();}
page logic:
protectedvoidPage_Load(objectsender, EventArgs e){BindAutoCompleteBox();}privatevoidBindAutoCompleteBox(){rAutoReceiveCompany.DropDownTemplateNeeded +=newReceivingSheetDropDownItemTemplate().RadAutoCompleteBox_DropDownTemplateNeeded;rAutoReceiveCompany.DataSource =newBLL.BaseInfo.ReceiveCompany().GetIsReceiveCompany(true);rAutoReceiveCompany.DataTextField ="CompanyName";rAutoReceiveCompany.DataValueField ="CompanyName";}
UI :<tk:RadAutoCompleteBoxID="rAutoDeliverCompany"runat="server"Filter="StartsWith"TextSettings-SelectionMode="Single"AllowCustomEntry="true"InputType="Text"></tk:RadAutoCompleteBox>