У кого-нибудь есть ссылка на пример кода или вы можете предоставить фрагмент для выполнения этой задачи. У меня ничего не выходит на сайте Telerik
программное создание многоколоночного radcombobox
Ответы (2)
Некоторое время назад мне нужно было кое-что собрать, и я нашел фрагменты кода, разбросанные по всему сайту и блогам Telerik. Итак, я не хочу брать "кредит" за создание приведенного ниже кода... но вот что я использую:
Добавьте это в свой css
.rcbHeader ul, .rcbFooter ul, .rcbItem ul, .rcbHovered ul, .rcbDisabled ul
{
width: 100%;
display: inline-block;
margin: 0;
padding: 0;
list-style-type: none;
}
.col1, .col2, .col3
{
float: left;
width: 100px;
margin: 0;
padding: 0 0px 0 0;
line-height: 14px;
}
Если вам нужен "счетчик предметов", добавьте эту функцию JavaScript
function UpdateItemCountField(sender, args) {
//set the footer text
sender.get_dropDownElement().lastChild.innerHTML = "A total of " + sender.get_items().get_count() + " items";
}
Вот код RadComboBox
<telerik:RadComboBox runat="server" ID="rcbInvoiceNumber" Height="190px" Width="350px"
MarkFirstMatch="true" EnableLoadOnDemand="true" HighlightTemplatedItems="true"
OnClientItemsRequested="UpdateItemCountField" OnItemDataBound="rcbInvoiceNumber_ItemDataBound"
OnItemsRequested="rcbInvoiceNumber_ItemsRequested" EmptyMessage="Enter Invoice Number"
ChangeTextOnKeyBoardNavigation="true" ValidationGroup="QuickPay">
<HeaderTemplate>
<ul>
<li class="col1">Invoice Number</li>
<li class="col2">PO Number</li>
<li class="col3">Invoice Total</li>
</ul>
</HeaderTemplate>
<ItemTemplate>
<ul>
<li class="col1">
<%# DataBinder.Eval(Container.DataItem, "InvoiceNumber") %></li>
<li class="col2">
<%# DataBinder.Eval(Container.DataItem, "PONumber")%></li>
<li class="col3">
<%# DataBinder.Eval(Container.DataItem, "TotalInvoice", "{0:C}")%></li>
</ul>
</ItemTemplate>
<FooterTemplate>
A total of
<asp:Literal runat="server" ID="RadComboItemsCount" />
items
</FooterTemplate>
</telerik:RadComboBox>
Наконец код
protected void rcbInvoiceNumber_DataBound(object sender, EventArgs e)
{
//set the initial footer label
((Literal)rcbInvoiceNumber.Footer.FindControl("RadComboItemsCount")).Text = Convert.ToString(rcbInvoiceNumber.Items.Count);
}
protected void rcbInvoiceNumber_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
{
var invs = new VInvoicesCasesTotalCollection()
.Load();
rcbInvoiceNumber.DataSource = invs.ToDataTable();
rcbInvoiceNumber.DataBind();
}
protected void rcbInvoiceNumber_ItemDataBound(object sender, RadComboBoxItemEventArgs e)
{
//set the Text and Value property of every item
//here you can set any other properties like Enabled, ToolTip, Visible, etc.
e.Item.Text = ((DataRowView)e.Item.DataItem)["InvoiceNumber"].ToString();
e.Item.Value = ((DataRowView)e.Item.DataItem)["InvoiceID"].ToString();
}
Следует отметить, что я добавил Telerik.Web.UI в свои операторы использования.
Надеюсь, это, по крайней мере, поможет направить вас в правильном направлении.
Я видел ссылки на этой странице и искал ответ на их странице, потому что я был уверен, что видел это раньше.
Ссылка, упомянутая в разделе комментариев к сообщению clk, действительно является демонстрацией, но если вам нужны основы и, возможно, самая простая документация для просмотра, ее можно найти здесь.
Как вы упомянули, вы загружаете данные в код позади, поэтому вы можете сначала загрузить объекты, затем установить источник данных, а затем продолжить следовать остальной части кода моих связанных статей при загрузке страницы.
Надеюсь хоть немного поможет.