Hi Kalina,
I am trying to implement a load on demand scenario for a RadComboBox but am struggling to get it to work with multi columns and attributes.
Here is the code for my RadComboBox:
<YDSC:ExRadComboBox ID="cmbFinanceEmpCode" runat="server" DropDownWidth="500px" Height="150px"
DataTextField="Name" DataValueField="GUID" EnableLoadOnDemand="True" ShowMoreResultsBox="true"
EnableVirtualScrolling="true" OnItemsRequested="cmbFinanceEmpCode_ItemsRequested"
OnClientKeyPressing="cmbFinanceEmpCode_ClientKeyPressing">
<HeaderTemplate>
<ul>
<li class="col1">姓名</li>
<li class="col2">唯一标识</li>
<li class="col3">部门</li>
</ul>
</HeaderTemplate>
<ItemTemplate>
<ul>
<li class="col1">
<%# DataBinder.Eval(Container.DataItem, "Name")%></li>
<li class="col2">
<%# DataBinder.Eval(Container.DataItem, "GUID")%></li>
<li class="col3">
<%# DataBinder.Eval(Container.DataItem, "DeptName")%></li>
</ul>
</ItemTemplate>
</YDSC:ExRadComboBox>
protected void cmbFinanceEmpCode_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
{
DataTable data = GetEmployeeInfoData(e.Text);
int itemOffset = e.NumberOfItems;
int endOffset = Math.Min(itemOffset + ItemsPerRequest, data.Rows.Count);
e.EndOfItems = endOffset == data.Rows.Count;
for (int i = itemOffset; i < endOffset; i++)
{
RadComboBoxItem item = new RadComboBoxItem(data.Rows[i]["Name"].ToString(), data.Rows[i]["GUID"].ToString());
item.Attributes["DeptCode"] = data.Rows[i]["DeptCode"].ToString();
item.Attributes["DeptName"] = data.Rows[i]["DeptName"].ToString();
cmbFinanceEmpCode.Items.Add(item);
}
e.Message = GetStatusMessage(endOffset, data.Rows.Count);
}
}
My problem similar the problem of TomL。You let us see examples。But the examples is not like my current situation。
My current situation:
1、I need Multi columns show
2、the number of Data is so huge。so I must Use "cmbFinanceEmpCode.Items.Add(item); "。but you examples is use "RadComboBox.DataBind()"。if i do like the Example,the Efficiency is low
Thanks