我在寻求一些建议。我在甲骨文EnterpriseOne平台上开发了大约11年,现在正在向c#迈进。因此,我对编程并不陌生,但在创建c# ASP.NET网页时,有几个概念在我的脑海中难以理解。
我有以下情况:
所以我有一个订单头+一个订单明细表,我想要创建一个新的订单,每个订单头可能有多个订单行。
在EnterpriseOne,我将有一个登陆屏幕,可以搜索,选择和添加新的订单。当您单击add按钮时,我将加载一个标题屏幕(没有网格),您将输入所有订单标题信息,这些信息对于所有订单细节记录都是通用的。当单击OK (到标题屏幕)时,我将显示一个详细的屏幕(网格),您可以在其中添加多个订单详细记录。
那么,如何在c# ASP.NET 2.0中做到这一点呢?我想创建一个N层应用程序.
我希望这足够清楚。我确信我需要做的事情是显而易见的,但我认为多年来在另一个平台上的工作使我对这个问题感到困惑。
发布于 2010-11-09 11:37:22
这真的取决于你正在为之服务的UI。
如果您想要一个屏幕,基本上可以直接编辑数据库中的行(编辑值、删除记录、添加记录),那么您可能需要一个GridView。
它还取决于您对ASP.NET Web的舒适度/体验。Web表单在“拖放”意义上是很棒的( IMO也是它的衰落)。这意味着您可以在页面上丢弃一个控件,并准备就绪。
但有时候这太过分了。我更喜欢使用网络控件,只有在绝对必要的时候。
我将保留一个简单的表单,基本表单字段,然后在服务器上构造实体,并传递到业务层进行验证和持久性。对过程有充分的控制。
顺便问一下,我看不出你的问题中有什么是N-Tier的解决方案?如果您想要N层,您应该通过某种web服务(即WCF)与您的数据层(在独立的计算机上到web层上)进行通信,而不是直接调用OrdersDB。
发布于 2010-11-09 12:19:26
我认为你有正确的想法。问题是如何使用网格视图进行插入,不幸的是,它没有附带插入项模板。最简单的方法就是将插入控件放在面板中,并在控件单击add item按钮时显示。
您可以使用网格视图进行插入,方法是将插入控件添加到页脚项模板中,但您必须自己处理页脚行的隐藏和显示。此外,如果绑定到空数据集,那么页脚行将不会出现,因此必须使用虚拟记录填充网格视图,以便在没有项时使页脚显示出来,因此有几个箍可以跳转,但是如果您在google上搜索,应该会找到一些示例。这里有一个看起来是有效的:http://www.aspdotnetfaq.com/Faq/How-to-insert-row-in-GridView-with-SqlDataSource.aspx
还有其他控件,如细节视图和formview,但老实说,我从未使用过它们,因为当您添加诸如事务和自定义验证之类的复杂性时,所有这些都会带来痛苦,而且我认为手动处理编辑和插入的所有代码更容易,除非情况非常简单。它们具有从数据库模式自动生成字段和标签的能力,因此它们可能很有用。
因此,至少对我来说,我使用网格视图查看,有时编辑,但很少用于插入,我很少使用内置的更新与双向数据绑定。通常,如果在网格视图中编辑,我只需使用编辑按钮来捕获编辑项索引,并使用命令参数或griddatakeys获取键并自己处理更新代码。不是说这是最好的方法,而是我经常这样做。
https://stackoverflow.com/questions/4133046
复制相似问题