Отсутствует ComboBox в элементе сетки Править - PullRequest
0 голосов
/ 07 мая 2019

Я новичок в Telerik и пробиваю себе путь вверх по кривой обучения.

У меня есть RadGrid, который я заполняю запросом linq. Я использую GridTemplateColumn с ComboBox для новых и редактирования одного из полей. Проблема в том, что ComboBox не отображается на экране вставки или редактирования. Поля, установленные как GridDropDownColumn, отображаются при вставке или редактировании. Мне нужно решение GridTemplateColumn, потому что мне нужно запустить некоторый код после выбора выпадающего списка.

Что мне здесь не хватает? Я пытаюсь работать на примере Telerik. Это поле Release, которое вызывает у меня проблему.

<telerik:RadGrid RenderMode="Lightweight" ID="grdData" runat="server"
        AllowPaging="true"
        AllowSorting="true"
        AutoGenerateColumns="false"
        AllowAutomaticInserts="true" 
        AllowAutomaticUpdates="true"
        OnNeedDataSource="grdData_OnNeededDataSource" 
        OnItemDataBound="grdData_OnItemDataBound"
        OnUpdateCommand="grdData_OnUpdateCommand" >
    <ClientSettings>
        <Selecting AllowRowSelect="True" />
        <Scrolling AllowScroll="True" UseStaticHeaders="True" />
    </ClientSettings>
    <SelectedItemStyle BackColor="LightYellow" />

    <MasterTableView Width="100%" 
            DataKeyNames="TID" 
            EditMode="EditForms"
            AutoGenerateColumns="false" 
            InsertItemDisplay="Top"
            CommandItemDisplay="Top"
            InsertItemPageIndexAction="ShowItemOnFirstPage">
        <Columns>
            <telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>
            <telerik:GridBoundColumn DataField="TID" UniqueName="TID" 
                HeaderText="TID" ReadOnly="true"></telerik:GridBoundColumn>
            <telerik:GridDropDownColumn UniqueName="Employee" ListDataMember="Employee"
                SortExpression="Employee" ListTextField="Employee" ListValueField="Employee"
                HeaderText="Employee" DataField="Employee"
                DropDownControlType="RadComboBox"
                EnableEmptyListItem="true" EmptyListItemText="Make a choice" EmptyListItemValue=""
                />
            <telerik:GridDropDownColumn UniqueName="Job" ListDataMember="Job"
                SortExpression="Job" ListTextField="Job" ListValueField="Job"
                HeaderText="Job" DataField="Job" 
                DropDownControlType="RadComboBox"
                EnableEmptyListItem="true" EmptyListItemText="Make a choice" EmptyListItemValue=""
                />
            <telerik:GridTemplateColumn UniqueName="Release" 
                    HeaderText="Release"
                    HeaderStyle-HorizontalAlign="Center"
                    SortExpression="Release"
                    ItemStyle-Width="170px" HeaderStyle-Width="80px"
                    DataField="Release" >
                <ItemTemplate>
                    <%#DataBinder.Eval(Container.DataItem, "Release")%>
                </ItemTemplate>

                <telerik:EditItemTemplate>
                    <telerik:RadComboBox runat="server" ID="rcbRelease"
                        AutoPostBack="true" 
                        EnableLoadOnDemand="true"
                        DataTextField="Release"
                        DataValueField="Release" 
                        Text='<% #Bind("Release")%>'
                        EnableEmptyListItem="true" 
                        EmptyListItemText="Make a choice" 
                        EmptyListItemValue="NR"
                        OnDataBinding="rcbRelease_OnDataBinding"
                        ></telerik:RadComboBox>
                </telerik:EditItemTemplate>
            </telerik:GridTemplateColumn>

            <telerik:GridBoundColumn DataField="ComponentJob" UniqueName="ComponentJob" HeaderText="ComponentJob"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Operation" UniqueName="Operation" HeaderText="Operation"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Quantity" UniqueName="Quantity" HeaderText="Quantity"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Priority" UniqueName="Priority" HeaderText="Priority"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Status" UniqueName="Status" HeaderText="Status"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="LastEdit" UniqueName="LastEdit" HeaderText="LastEdit"></telerik:GridBoundColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

1 Ответ

0 голосов
/ 19 июня 2019

Я думаю, что у вас проблемы с ComboBox, потому что у вас EnableLoadOnDemand = true, но вы не подписаны на событие ItemsRequested. Подробнее см. Обзор загрузки по требованию .

Поскольку вы упоминаете о своем новом элементе управления, возможно, вы захотите, чтобы ComboBox LoadOnDemand сначала работал вне сетки.

...