【问题标题】:How to create a master/detail relationship with Telerik and OData?如何与 Telerik 和 OData 创建主/从关系?
【发布时间】:2011-10-03 14:51:19
【问题描述】:

我有一个使用 Entity Framework 使用协议版本 2 创建的 OData WCF ADO.NET 服务。实体模型如下所示:

我现在希望使用 Telerik RadGrid 来使用它。到目前为止的标记如下:

<telerik:RadGrid ID="radGrid" runat="server" AutoGenerateColumns="false" Width="100%" Skin="Sitefinity">
    <ClientSettings>
        <DataBinding Location="http://aadev:8081/measuredata.svc">
            <DataService TableName="MeasureTopics"></DataService>
        </DataBinding>
    </ClientSettings>
    <MasterTableView DataKeyNames="MeasureTopicGuid" GroupLoadMode="Client" Name="MeasureTopics">
        <Columns>
            <telerik:GridBoundColumn DataField="TopicName" />
        </Columns>
        <DetailTables>
            <telerik:GridTableView DataKeyNames="MeasureGuid" runat="server">
                <ParentTableRelation>
                    <telerik:GridRelationFields DetailKeyField="TopicID" MasterKeyField="MeasureTopicGuid" />
                </ParentTableRelation>
                <Columns>
                    <telerik:GridBoundColumn DataField="MeasureKeyCode" />
                    <telerik:GridBoundColumn DataField="MeasureName" />
                </Columns>
            </telerik:GridTableView>
        </DetailTables>
    </MasterTableView>
</telerik:RadGrid>

这会显示度量主题和用于展开度量定义的右箭头,但单击箭头不会执行任何操作。至少部分问题是ParentTableRelation 无法工作,因为实体上不存在“TopicID”。 (它不存在,因为将“MeasureTopic”作为导航属性会阻止 EF 允许它作为标量也存在于实体上。)

我想知道的是,关系是通过 OData 提要作为链接...

<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/MeasureTopic" type="application/atom+xml;type=entry" title="MeasureTopic" href="MeasureDefinitions(guid'96df6072-a8e4-e011-890d-000c29ba97e5')/MeasureTopic" /> 
<category term="HealthMeasuresModel.MeasureDefinition" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> 
<content type="application/xml">
    <m:properties>
        <d:MeasureGuid m:type="Edm.Guid">96df6072-a8e4-e011-890d-000c29ba97e5</d:MeasureGuid> 
        <d:MeasureKeyCode>ABC-001</d:MeasureKeyCode> 
        <d:MeasureName>ABC Register</d:MeasureName> 
        <d:MeasureDescription>Test</d:MeasureDescription> 
    </m:properties>
</content>

...我如何配置 RadGrid 才能理解它?

【问题讨论】:

    标签: entity-framework telerik wcf-data-services odata


    【解决方案1】:

    您的标记大部分是正确的,只有 GroupLoadMode 应该是 HierarchyLoadMode。前者指定加载组,后者指定层次详细信息表。

    您还需要一些 javascript,更具体地说是两个 RadGrid 客户端事件 - OnHierarchyExpandingOnCommand。该方法在this Telerik Blog post 中进行了演示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多