问题标签 [master-detail]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
332 浏览

asp.net - 在同一网页上保存/编辑父子信息

这是一个与人们如何处理 Web 应用程序的用户界面中的情况有关的问题。我有一个页面,当用户想要创建/编辑父对象时会显示该页面。它有一些与此 Parent 对象相关的属性,以及一个 Save 按钮,因此可以保存 Parent。每个 Parent 对象都有一个 Child 对象的集合(显示在同一页面的网格中),并且在同一屏幕上,用户可以添加/修改/删除 Child 对象,类似于以下内容:

请注意,当我需要时,我真的只想有按钮:一个保存按钮(统治它们!)。当用户创建或编辑父对象时,我试图启用以下场景:

  1. 用户修改父信息(尚未保存到数据库中)
  2. 用户添加/修改/删除子对象(尚未保存到数据库中)
  3. 用户点击保存(保存所有父子信息)

通过各种花哨的 AJAX 式东西,我可以在不刷新页面的情况下实现这一点,但同时我每次都会将所有中间更改保存到 Web 服务器上的用户会话中。例如:用户单击“添加”按钮(添加一个新的子对象),所以我进入会话,检索我已经放在那里的父对象并将一个新的子对象添加到子对象的集合中,然后绑定这个到数据列表。下次单击“添加”按钮时,我必须将用户对第一个子条目所做的更改保存回我从会话中检索到的对象中并重复该过程。

这是疯了吗?也许我正试图将“状态”强制到“无状态”Web 应用程序上,但不应该这样做。我理解在网格中进行每行项目编辑的概念,但这对于小屏幕来说似乎很愚蠢,因为父母有几条信息,每个孩子有几条信息,而且用户需要额外点击.

我认为这个问题与技术无关,但以防万一您需要知道这是一个 ASP.NET Web 应用程序。

0 投票
4 回答
2461 浏览

ruby-on-rails - Rails Form Builders - 如何显示只读字段或保护字段

我创建了一个需要显示来自 2 个表(父表和子表)的数据的表单。提交表单时,仅更新子字段(父字段仅用于显示)。在显示父模型字段时,需要保护这些字段不被更新(最好通过表单构建器,而不是通过 css)。

FWIW 这是一个非常常见的主/细节用例。但是我找不到任何这样的例子——我见过的大多数例子似乎都是微不足道的/单一模型显示/更新,其中所有显示的字段都是可更新的)。

任何想法/示例/建议/教程/现实世界的示例,多模型 Rails 表单都会有所帮助。

TIA

0 投票
2 回答
1645 浏览

wpf - WPF 多个主/详细信息,相同的网格

我有一个TreeView包含三个级别的。

可以说它是一个联赛,一个部门和一个团队TreeView

现在,当我选择树中的每个项目时,我想查看有关它的详细信息。

实现这一目标的最佳方法是什么?

由于Grid没有项目(如 a ListBox),我不能只设置它ItemsSource并制作DataTemplate...

我考虑过使用ListBox只包含所选项目的,但这似乎很糟糕......

谢谢。

0 投票
1 回答
5351 浏览

asp.net-mvc - 主从视图 ASP.NET MVC

我是 MVC 的新手,我参与了一个使用 ASP.NET MVC 1.0 开发的项目。我的 JavaScript 也很弱 :-(

我正在尝试演示主从视图如何在 Northwind 数据库中的“订单”和“订单详细信息”表上工作。(因此:表有关系,即一个订单可以有多个订单详情)

我创建了两个控件(第一个用于订单,第二个用于 OrderDetails)。我将 Orders 表中的所有订单显示到列表视图中。一旦我点击其中一个订单,它就会将我带到该订单的详细信息视图。

我想要做的(失败)是在订单的详细信息视图下方创建一个子视图,其中包含该订单的所有订单详细信息。

我还想根据主视图中的选择更改子视图的内容。我读了很多关于使用 AJAX 和 JSON 来动态改变它,但我也没有这样做:'(

任何人都可以提供帮助并为我提供如何实现它的技术和代码?

0 投票
1 回答
1566 浏览

c# - 在主-详细信息视图中聚合详细信息值

我在一些自定义实体中有主从关系。假设我有以下结构:

我的目标是拥有一个使用 GridView 的 ListView,显示 Master 对象的列表。当我选择一个特定的 Master 时,我将有一个单独的 ListView 用于详细信息,允许进行编辑。基本上,一个相当标准的主从视图。

但是,我还希望大师的 GridView 显示所有该大师的 Detail 元素的总和,即: Details.Select(d => d.Value).Sum();

使用自定义 IValueConverter 很容易显示。我可以从详细信息集合直接转换为双显示总和,并通过 IValueConverter 将 TextBlock 的文本绑定到 Details OneWay。这将起作用,并在我打开窗口时显示正确的值。

但是,如果我更改其中一个详细信息成员,这将不会更新(即使详细信息实现了 INotifyPropertyChanged),因为集合本身仍然是相同的(ObservableCollection 引用没有更改)。

我想在主列表中有一个聚合值,在详细列表中显示总和(或平均值/计数/等),并在用户更改详细属性时保持最新。我该如何实施呢?


编辑:

理想情况下,如果有一种不涉及直接更改 Master 类的方法来实现这一点,我会更喜欢。有问题的应用程序使用 MVVM 模式,我真的不希望更改我的模型类来实现特定的视图。有没有办法在不将自定义逻辑引入模型的情况下做到这一点?

0 投票
1 回答
7069 浏览

crystal-reports - 如何在 VS 水晶报表中制作子报表/主详细信息而不可点击?

我经常在 Visual Studio 的 Crystal Reports 中创建报表,并希望有一个主从或一对多类型的东西。像这样的东西:

我可以将单个数据集用于这么简单的事情,然后对“父”值进行分组,但通常我有多种类型的详细信息行或想要详细记录的图表,或者出于任何原因我想要两个数据集:一个一个用于父记录,一个用于子记录。

我一直采用的方法是将报表基于一个数据集,将子报表添加到报表并为子记录使用另一个数据集。这很好用,看起来也不错——即当我运行报告时,我在一个视图中看到所有数据,详细信息部分展开以适合所有记录。但是,子报告始终是可点击的,这是我的问题。如果用户单击子报表,即子记录或图表或我在那里的任何内容,他们将被带到子报表。这对他们来说很奇怪,因为他们会看到一个新的“页面”,上面只有该部分的详细信息。

我真正想要的是一种让我的报告基于多个数据集的方法,就像我现在对子报告所做的那样,但要使用户无法单击这些子报告并深入了解它们。我从来没有弄清楚如何做到这一点。那是因为我只是在接近这一切都是错误的,还是只是水晶报表的限制,或者有解决方案吗?

我正在使用 Visual Studio 2005 附带的 Crystal Reports。

0 投票
2 回答
104 浏览

.net - 我想使用什么 .NET 控件?

我应该使用什么 .NET 控件向用户显示它?

我有两种元素,一个包和一个项目。item 包含的数据是 id、size 和 status。包可以有多个项目(但没有包,因为它不是树)。它保存状态和计数。我可以为此考虑第三列。我需要右键单击每个项目或包并选择命令。我应该将一个包中的所有项目放在一个组中。如果用户双击,我想隐藏或显示包中的项目。

我不知道使用什么控件。我正在考虑带有 id 和 size 列的数据网格,并认为我可以使用 id 作为状态并拥有某种树,但我不知道这是否可能。我应该使用什么控件?

0 投票
5 回答
1578 浏览

sql - 如何检查子表是否正在使用/引用主表的记录

在我的 ERP 应用程序中,我将一个名为“IsRemoved”的额外字段作为布尔值。每当用户删除任何记录时,该记录都不会被删除 - 只有其“IsRemoved”列的值为“true”。它可以帮助我们随时恢复数据,并且工作正常。

问题是当用户删除主表的记录时,我们如何检查它的所有子表都没有引用该记录(因为我们不执行物理删除,我们只是将“isremoved”字段标记为true)?

请向我提供任何查询或 sp,我可以从中检查主记录是否在其任何子项中使用。

0 投票
1 回答
1477 浏览

.net - 如何创建主从插入表单

我正在使用Northwind 数据库,我想创建一个C# .Net Framework windows 窗体来生成订单输入。

我已经链接了我的数据集中的表和绑定源,并使用绑定导航器来查看它们中的每一个

问题是我无法找到将订单详细信息添加到未创建订单的方法,因为它会引发向数据库插入空值的异常。(我认为使用自动增量会解决它,但它不会)

你们有什么想法吗?

0 投票
2 回答
1497 浏览

cocoa - 如何使用 Core Data 和抽象实体创建主从接口?

Apple 有一个很好的小教程,用于制作简单的主从界面。Interface Builder 甚至会自动从 Core Data 实体为您生成一个。但是,我正在尝试做一些比简单示例更复杂的事情,并且我一直在努力让它发挥作用。

我有一个基于核心数据文档的应用程序。该模型包括一个抽象实体 Page,以及 Page 的几个具体子实体。所有页面都有一些共同的属性(例如“名称”),并且这些属性在 Page.xml 中定义。显然,子实体具有它们独有的属性。

我希望界面允许用户在主列表(NSTableView)中查看所有类型的页面。当他们选择一个页面时,显示的详细信息字段将取决于它是什么类型的页面。

这是我现在拥有的:

我有一个主 nib 文件,其中显示了主列表,以及页面共有的所有字段。每种页面类型都有一个带有特定字段的 nib。主 nib 文件中有主 NSArrayController,用于填充 NSTableView。每个页面特定的 nib 中都有一个 NSArrayController ,这样我就可以将详细信息字段绑定到当前选择的属性。我所有的 NSArrayController 都配置相同,并且我将它们都绑定到相同的 managedObjectContext 和相同的 selectionIndexes。

我正在使用 Aaron Hillegass 的视图交换方法,他在他的 Cocoa 书中描述了这种方法。于是我注册了NSTableViewSelectionDidChangeNotifications,当我收到一个时,它会调用一个方法switchView:

switchView 查看当前选中的对象,检查它是哪种类型的 Page,并根据 Hillegass 的方法在适当的 nib 文件中交换。

如果我只添加一种类型的页面,一切正常,但是一旦我添加第二种类型的页面,我就会收到此错误:

对象的键路径选择索引值设置错误(来自绑定对象实体:页,选定对象数:1):[ valueForUndefinedKey:]:实体 NoColPage 与键侧的键值编码不兼容。

错误的最后一部分是有道理的:它试图显示错误的笔尖,因此它试图绑定到该对象不存在的字段。

我在 MyDocument 中添加了一个 selectionIndexes 字段,以便我所有的 NSArrayControllers 都可以绑定到同一个地方。我为此苦恼了好几天,也想不通。有任何想法吗?

如果有帮助,这里有一个示例项目,您可以下载。我只从我的项目中提取与这个问题相关的东西到一个新的虚拟应用程序中,我一直在用它来测试和玩耍。

PS:Interface Builder 用于从 Core Data 实体生成主从接口的工具不像我希望的抽象实体那样工作。它只为超实体中的属性创建字段。

编辑:我认为约书亚正在做某事,但不幸的是,它不起作用——我一直遇到同样的问题。起初我很难过,因为我不明白 -unbind: 需要一个字符串常量,而不是一个关键路径。

我尝试了几种变体:我跟踪当前显示的 nib 的阵列控制器;我在其中跟踪当前显示的页面类型,并且仅在尝试显示不同的页面类型时取消绑定/重新绑定...

这是代码的相关部分。

}