1

在我的应用程序中,我们使用 ASP.NET 动态数据进行数据绑定。一切正常。

如果您看到下面的代码片段,它具有动态字段DepartmentID,它是表的外键Department并从那里获取部门名称(在 中指定DynamicData/FieldTemplates/IDForeignKey.ascx.cs)。

我们的要求是对部门名称上的记录进行排序(排序),因为它们在网格视图中可见。我唯一的选择是对DepartmentID不符合我们目的的排序。

我们如何对从 ForeignKey 检索到的数据进行排序?

列表.aspx

       <asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource" OnPreRender="GridView1_PreRender"
            AllowPaging="True" AllowSorting="True" AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:HyperLink ID="EditHyperLink" runat="server"
                            NavigateUrl='<%# table.GetActionPath(PageAction.Edit, GetDataItem()) %>'
                        Text="Edit" />&nbsp;|&nbsp;<asp:LinkButton ID="DeleteLinkButton" runat="server" CommandName="Delete"
                            CausesValidation="false" Text="Delete"
                            OnClientClick='return confirm("Are you sure you want to delete this item?");'
                        />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:DynamicField DataField="DepartmentID" HeaderText="Department" />                    
                <asp:DynamicField DataField="Description" HeaderText="Description"/>
            </Columns>

            <PagerStyle/>        
            <PagerTemplate>
                <asp:GridViewPager runat="server" />
            </PagerTemplate>
            <EmptyDataTemplate>
                There are currently no items in this table.
            </EmptyDataTemplate>
        </asp:GridView>
    </div>
        <asp:EntityDataSource OnSelecting="GridDataSource_Selecting" ID="GridDataSource"  runat="server" EnableDelete="true" OnDeleted="GridDataSource_Deleted"  >
            <WhereParameters>
                <asp:DynamicControlParameter ControlID="DynamicFilter1" />
            </WhereParameters>
        </asp:EntityDataSource>
4

1 回答 1

1

不幸的是,您的问题并不完全清楚如何描述您的元数据,
但无论如何您都可以尝试使用QueryExtender控件和SearchExpression类。您可以通过链接QueryExtender 和 SearchExpression找到更多详细信息以及示例。

整个想法是使用自定义 LINQ。

于 2013-04-07T18:52:39.267 回答