网格项目编辑上缺少组合框

时间:2019-05-07 15:29:15

标签: c# asp.net telerik telerik-grid

我是Telerik的新手,正在努力提高自己的学习水平。

我有一个用linq查询填充的RadGrid。我正在使用 带有ComboBox的GridTemplateColumn,用于新建和编辑字段之一。问题是ComboBox没有显示在插入或编辑屏幕上。设置为GridDropDownColumn的字段确实显示在插入或编辑中。我需要GridTemplateColumn解决方案,因为一旦选择了下拉列表,我就需要运行一些代码。

我在这里想念什么?我正在尝试从Telerik的示例。是“发布”字段给我带来了问题。

<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>

2 个答案:

答案 0 :(得分:0)

我认为您在使用ComboBox时遇到了麻烦,因为您具有EnableLoadOnDemand = true,但尚未订阅ItemsRequested事件。有关详细信息,请参见Load On Demand Overview

由于您在控件中提到了新功能,因此您可能希望首先使ComboBox LoadOnDemand在网格之外工作。

答案 1 :(得分:0)

尝试从EditItemTemplate声明中删除telerik名称空间/前缀:

更改此:

<telerik:EditItemTemplate>
    <%-- RadComboBox --%>
</telerik:EditItemTemplate>

对此:

<EditItemTemplate>
    <%-- RadComboBox --%>
</EditItemTemplate>

另外,请与我们分享您关注的文档,以便我们仔细检查并报告文档错误。