программное создание многоколоночного радкомбокса - PullRequest
0 голосов
/ 09 ноября 2011

Любой может иметь ссылку на пример кода или предоставить фрагмент кода для выполнения этой задачи. Я выхожу пустым на сайте Telerik

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Некоторое время назад мне пришлось что-то собрать и найти фрагменты кода, разбросанные по всему сайту и блогам 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 в свои операторы использования.

Надеюсь, это поможет вам в правильном направлении.

0 голосов
/ 10 ноября 2011

Я видел ссылки на этой странице и отправился на поиски ответа на их странице, потому что был уверен, что видел его раньше.

Ссылка на упоминание в разделе комментариев поста clkЭто действительно демо, но если вы хотите, чтобы основы и, возможно, самая легкая документация для просмотра, были бы найдены здесь .

Как вы упоминаете, вы загружаете свои данные в кодеИтак, что вы могли бы сделать, это сначала загрузить сущности, затем установить источник данных, а затем продолжить следовать остальной части кода моей связанной статьи при загрузке страницы.

Надеюсь, это поможет хоть немного.

...