根据实体框架导航属性中的项目计数对绑定的 ASP.NET GridView 进行排序

2024-02-14

我有一个 ASP.NET 页面,其中有一个绑定到 EntityDataSource 的 GridView 控件(请参阅下面的简化代码)。网格显示了一个列表Parent项目并包括一个显示 .Count 的列Children对于这位家长。我可以让网格正确显示计数,但我无法弄清楚如何使用 asp:TemplateField SortExpression 值来将排序设置为子项计数。

这是我的代码的样子(为了清楚起见,进行了简化)...

<asp:EntityDataSource ID="edsParentList" runat="server" 
     ConnectionString="name=FooEntities" 
     DefaultContainerName="FooEntities" 
     EnableFlattening="False" 
     EntitySetName="Parents" 
     EntityTypeFilter="Parent"
     Include="Children"
     OrderBy="it.Name"
     Where="(it.Name LIKE '%' + @ParentNameLike + '%')
     >
     <WhereParameters>
         <asp:Parameter Name="ParentNameLike" Type="String" DefaultValue="_" />
     </WhereParameters>
 </asp:EntityDataSource>
 <asp:GridView ID="grdParents" runat="server" 
     AllowPaging="True" 
     AllowSorting="True" 
     AutoGenerateColumns="False" 
     DataSourceID="edsParentList"
     PageSize="20" 
     onpageindexchanged="grdParents_PageIndexChanged" onsorted="grdParents_Sorted" >
     <Columns>
         <asp:TemplateField HeaderText="Name" SortExpression="Name">
             <ItemTemplate>
                 <a href="Parent.aspx?id=<%# Eval("ParentID") %>"><%# Eval("Name") %></a>
             </ItemTemplate>
         </asp:TemplateField>
         <asp:BoundField DataField="BirthDate" HeaderText="Birth Date" 
              DataFormatString="{0:yyyy-MM-dd HH:mm}"
              SortExpression = "BirthDate" />
         <asp:TemplateField HeaderText="Children" SortExpression="Children.Count">
             <ItemTemplate>
                 <asp:Label ID="lblChildCount" runat="server" 
                  Text='<%# Eval("Children.Count") %>'></asp:Label>
             </ItemTemplate>
         </asp:TemplateField>
     </Columns>
 </asp:GridView>

这会很好地显示网格。但是,当我单击“子项”列的标题时,会引发以下错误:

“Count”不是以下成员 'Transient.collection[FooEntities.Child(Nullable=True,DefaultValue=)]'。 要提取集合元素的属性,请使用子查询 迭代集合。

我的问题是:如何对由子对象集合组成的导航属性的 .Count() 启用排序?

有没有办法用 SortExpression 指定这一点,或者我是否必须分解并手动执行所有分页和排序? (我显然更愿意避免!)


在您的位置,由于实体类被声明为部分,我将尝试为父实体创建补充部分类代码文件,并添加 ChildCount 只读属性。该属性将引用 Children 导航属性。然后我会对此进行排序。

在这里,我假设 EntityDataSource 可以与我所说的实体上的派生属性一起使用。我没有测试过这个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据实体框架导航属性中的项目计数对绑定的 ASP.NET GridView 进行排序 的相关文章

  • 如何逐行解析文本区域中的用户输入

    如果我有一个包含文本信息的变量 比如从文本区域获取 如何逐行读取字符串变量中保存的文本内容 在文本区域中输入的文本将以 n 输入键 来分隔行 您可以使用StringReader http msdn microsoft com en us l
  • 实体类型 ApplicationUser 不是当前上下文模型的一部分。在项目开始时使用了两个不同的数据库

    我使用实体框架创建了一个 MVC 4 应用程序来读取数据并将数据写入我在 Azure 数据库上托管的数据库 Azure 数据库应该保存应用程序数据和应用程序的登录数据 但是 当我第一次创建应用程序时 我忘记删除到本地计算机的连接字符串 因此
  • 绑定大插入或更新的更有效方法?

    好的 我是绑定新手 这里有一些有效的代码 我从教程中学到了这种格式 但我想还有更有效的方法来做到这一点 在我的示例中 有 4 个名称 但实际上我将在我正在处理的项目中进行大量插入和更新 该项目将有 20 个左右的字段 我喜欢这种方法 因为它
  • asp.net/jQuery:使用 jQuery 将数据发布到弹出窗口 [IE]

    我正在尝试在 asp net 应用程序中使用 jQuery 将数据发布到弹出窗口 如果弹出窗口打开 我会收到三个错误 第一个错误是 Errror the value of the property is null or undefined
  • 带有 ObservableCollection 和动态过滤器的 Silverlight ListBox

    假设我有这门课 public class MyData public bool IsActive get set public String Data1 get set public String Data2 get set and an
  • 检查Cookie是否存在

    从快速搜索开始堆栈溢出我看到有人建议使用以下方法来检查 cookie 是否存在 HttpContext Current Response Cookies cookie name null 或 在一个Page class this Respo
  • 无法使用 Javascript 重定向到另一个页面

    在 html 文件中使用 Javascript 重定向页面 我这样使用 window location href http www google com 它工作正常 但是当我在 aspx 中尝试时它不起作用 下面是我的代码 提前致谢
  • 在docker中使用MySQL数据库设置aspnetcore

    我正在尝试设置一个 docker compose 文件 其中包含 asp net core mysql 数据库和 phpmyadmin 的容器 设置我的 mysql 服务器没有问题 我可以使用 phpmyadmin 访问它 我的 asp n
  • android 网格视图从右到左放置项目

    我正在开发一个 Android 应用程序阿拉伯文版本 在其中一个界面中 我有 gridView 因此 要以正确的顺序显示项目 我必须从右到左显示 GridView 中的项目 当然是从上到下 为此 我尝试在 GridView 中添加这些属性
  • 应用程序内的 SQLite 文件版本兼容性

    我有一个 C NET 应用程序 一种复杂的计算应用程序 其中用户输入数据 处理后的信息使用 JSON 序列化和 EF 保存到 SQLite 文件中 需要时可以将其加载到我们的应用程序中 应用程序在开发过程中经历了很多变化 类也被修改 因此
  • Microsoft.Extensions.Caching.Redis 选择与 db0 不同的数据库

    一个关于了解使用哪个redis数据库以及如何配置它的问题 我有一个默认值ASP NET Core Web 应用程序和默认配置的本地redis服务器 含15个数据库 通过包管理控制台我已经安装了 Install Package Microso
  • 包括过滤器子集合[重复]

    这个问题在这里已经有答案了 我在为 LINQ 查询中包含的项目添加一些过滤条件时遇到一些困难 我的查询就像 var item Context Order Include Inner Include Inner first Include I
  • asp.net mvc 4 - 可以在每个线程共享 DbContext 吗?

    From 每个 Web 请求一个 DbContext 为什么 https stackoverflow com questions 10585478 one dbcontext per web request why 我的理解是 DbCont
  • 获取代码中的绑定结果

    我可能正在以错误的方式寻找这个 但是 有没有办法通过代码获取绑定的结果值 可能是一些显而易见的东西 但我就是找不到它 您只需致电ProvideValue的绑定方法 困难的部分是你需要通过有效的IServiceProvider到方法 编辑 实
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • NHibernate、数据绑定到 DataGridView、延迟加载和会话管理 - 需要建议

    我的主应用程序窗体 WinForms 有一个 DataGridView 它使用 DataBinding 和 Fluent NHibernate 显示 SQLite 数据库中的数据 该表单在应用程序运行的整个过程中都是打开的 出于性能原因 我
  • 如何从内容页检索母版页中的控件

    当我最近问一个关于如何从内容页检索母版页中的控件 许多人建议我使用内容页面中的这段代码 Label lbl this Master Page FindControl uxLabel as Label Note any server cont
  • 从表单身份验证中排除页面 - ASP.NET

    我知道有两种方法可以从表单验证中排除页面 通过使用包含需要排除的页面的文件夹中的另一个 web config 文件 或者使用 location 元素
  • 复选框上的数据绑定

    我目前正在将数据从 SQL 数据库之一提取到我的应用程序中 我可以让它适用于我的文本框和其他项目 但是 我似乎无法让它适用于复选框 这是我正在使用的代码 DataTable dt new DataTable dt using SqlConn
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下

随机推荐

  • 具有动态数据类型的 C 模块化数据结构

    对于我即将进行的大学 C 项目 我被要求拥有 C 允许的模块化代码 基本上 我将拥有一些数据结构的 c 文件和相应的 h 文件 例如链表 二叉树 哈希表等 以链表为例 我有这样的 typedef struct sLinkedList int
  • 如何获取点击的listviewitem的上一项

    我有两项活动 在 Activity1 中 我有从数据库填充的列表视图 单击项目后 它应该转到 Activity2 Activity2 包含两个按钮 下一个和上一个 并显示产品详细信息 我试图获取单击的列表视图项目的上一个项目并在按钮中设置文
  • matplotlib 情节之外的两个图例

    我面临着在情节之外显示两个图例的问题 显示多个图例inside绘图很简单 matplotlib 文档中通过示例对其进行了描述 即使在情节之外显示一个图例也相当容易 正如我在 stackoverflow 上发现的那样 例如here https
  • 是否有 T4 模板可用于从 xsd 生成 c# 类?

    是否有 T4 模板可用于从 xsd 生成 c 类 据我所知 但看看 LINQ to XSD http linqtoxsd codeplex com http linqtoxsd codeplex com 您可以使用 LinqToXsd ex
  • MacOS 10.8 的 rxtxSerial.dll

    我目前正在开发一个 ZigBee 项目 并在装有 Mountain Lion 10 8 的 Mac 上并使用 Eclipse IDE 进行编程 要通过 USB 使用我的 Zigbee 模块进行串行通信 我需要这个 rxtxSerial dl
  • PropTypes React Native 不是一个对象

    我的代码在本地反应时遇到 PropTypes 问题 import React Component PropTypes from react import Text from react native export default class
  • 如何使用控制台删除 GitLab 中的文件夹

    我错误地创建了一个名为src在我的 GitLab 存储库中 现在我想删除此文件夹 我尝试了多种方法来删除它 但我只能在本地删除它 而不能在我的 GitLab 存储库中删除它 该文件夹仍然存在 我想删除它 我已经尝试过这些命令 git rm
  • Python:Beautifulsoup 返回 None 或 [ ]

    你好 我正在练习我的请求和网络抓取技巧 所以我尝试抓取 youtube 上的趋势页面 并提取趋势视频的标题 这是这个链接youtube https www youtube com feed trending 这是我正在运行的代码 impor
  • 为什么ie7总是处于Quirks模式?

    这是我正在使用的 DOCTYPE 和 XML 声明 但 IE7 仍然总是进入怪异模式 有人知道为什么吗 提前致谢 如果 DOCTYPE 之前有任何内容除了 XML 序言之外 那么你就会在IE7中触发怪异模式 这包括空白和注释 XML pro
  • Python 根据条件关闭任务

    我使用 AsyncIO 和 Websockets 模块在 Python 中创建两个并发任务 每个任务都连接到 Websocket 服务器并接收消息 我正在尝试创建一个系统 当任务超过 4 秒没有收到消息时 它必须关闭连接和任务 但我很难弄清
  • 如何在 Arduino 上比较 __FlashStringHelper* 和 char*?

    我有一个将文本行输出到串行的板 我需要将这些文本行与我所知道的文本进行比较 本质上 我想做strcmp thestring F knownstring 但是似乎没有一个采用 FlashStringHelper 类型的 strcmp 版本 有
  • 是否可以通过引用返回临时对象

    是否可以从函数返回引用 如以下示例代码所示 string erase whitespace string text text erase etc return text Call string text erase whitespace s
  • jquery 和 random.org“Access-Control-Allow-Origin 不允许”

    我在使用 jQuery 从 random org 请求随机数时遇到问题 当我使用静态页面和以下 JavaScript 时 获取随机数没有任何问题 但是 我在 Heroku 上托管一个 Sinatra 应用程序 此外 当使用 Thin 在生产
  • 如何启动默认启用深色主题的 jupyter lab?

    答案是这个问题 https stackoverflow com questions 40518614 how to apply theme to jupyter lab指出 JupyterLab Dark 主题现在作为原版的一部分提供jup
  • 在巨大的 gzip 文件顶部添加一行

    我有一个巨大的 gzip 文件 400MB 我想在文件的开头附加一行文本 我正在考虑创建一个带有标题行的 gzip 文件 然后使用zcat合并头文件和日志文件 只是想检查是否有更好 优雅 有效的方法来做到这一点 两个 gzip 压缩文件连接
  • 无法使用 Transform 删除 Web.Config 节点

    我有一个包含这样的重写规则的 web config
  • Spring Boot 与 Jersey 和 Spring Security OAuth2

    以下是 Spring Boot 的示例 来自 GitHub 的示例代码 https github com spring projects spring boot tree master spring boot samples spring
  • 当文本换行时,Flexbox 不再对齐项目

    我正在努力使用flexbox容器连同bootstrap 4将我的元素水平居中对齐 这是我到目前为止所拥有的 div class d flex flex column align items center img class rounded
  • 是否可以在 GCE 上配置容器优化的操作系统虚拟机而无需实际部署映像?

    我想构建一个 CI 管道 其中基础设施阶段在 Google Compute Engine 上使用 Terraform 提供容器优化的操作系统实例beforeDocker 化的应用程序上传到 ArtifactRegistry 并首次部署 我的
  • 根据实体框架导航属性中的项目计数对绑定的 ASP.NET GridView 进行排序

    我有一个 ASP NET 页面 其中有一个绑定到 EntityDataSource 的 GridView 控件 请参阅下面的简化代码 网格显示了一个列表Parent项目并包括一个显示 Count 的列Children对于这位家长 我可以让网