Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加/删除单个对象的项目列表_C#_Asp.net - Fatal编程技术网

C# 添加/删除单个对象的项目列表

C# 添加/删除单个对象的项目列表,c#,asp.net,C#,Asp.net,对于我的站点,我有一个用户列表和一个事件列表。我将为每个事件分配用户。我有一个名为EventUsers的表来保存此数据: ------------------------ EventUsers ------------------------ EventID | UserID ------------------------ 1 | 123 1 | 456 2 | 789 在我的页面上,我希望能够添加和删除特定事件的用户 我可以有一个用户填充

对于我的站点,我有一个用户列表和一个事件列表。我将为每个事件分配用户。我有一个名为EventUsers的表来保存此数据:

------------------------
EventUsers
------------------------
EventID  |  UserID
------------------------
1        |  123
1        |  456
2        |  789
在我的页面上,我希望能够添加和删除特定事件的用户

我可以有一个用户填充的下拉列表和旁边的“添加”按钮,然后当我想添加用户时,我选择一个并单击“添加”。它下面会有一个网格,显示事件的所有用户,每个用户都有“删除”按钮。这样做的缺点是每次添加和删除都会调用数据库

另一个选项是在页面上有两个列表框——一个在左边,包含数据库中的所有用户,另一个在右边,包含给定事件的用户,我可以在右边的列表中添加或删除。完成后,单击save,它会调用一个数据库。唯一的问题是,如果要删除和添加,则必须删除EventUsers表中该事件的每条记录,然后添加更改


我以前遇到过这种情况,而且我一直使用下拉法。这里的首选方法是什么?

对我来说,听起来您对第一个解决方案中的数据库命中有点太担心了。在我看来,从该表中插入或删除一条小记录实际上是微不足道的。即使是在一个大型站点上,数据库的点击率也不会真正起作用,除非你在某个地方有一个聚集索引,这可能会减慢速度


如果你不喜欢数据库命中(再一次,我认为这些是边缘的),并且你不喜欢删除/重新添加记录,你可以考虑在会话中存储变化,而不保存它们直到点击“保存”按钮。但是,这需要最终用户采取更多的行动,所以这可能不是最好的主意,两者都可以。

任何一种方法都应该有效,但使用右侧列表添加/删除项目的第二种方法似乎是可行的,因为您已经完成了添加/删除项目的操作,而且该技术在许多其他情况下都会被使用,因此用户很熟悉。

两者都不是完美的。在这些情况下,最好进行一些用户测试,稍后再考虑技术实现;)


从用户体验的角度来看,如果我在一个活动中添加了大量用户,我希望它能够快速进行,并且不会每次操作都有回帖。

首选的方法是在可用性测试中得分更高的方法。我是唯一使用它的人。我正在寻找一个在首选逻辑和效率方面更好的选择。你什么时候开始需要回发了?:)AJAX可以让这一切变得非常无缝。这正是我所建议的——考虑一下用户体验(即没有回发),然后对如何做到这一点进行创新(AJAX/任何解决方案)。AJAX会很酷,尽管我使用的是Web表单,而不是MVC。我以前遇到过AJAX和web表单的问题,因为jQueryAjax方法只能调用静态方法,而静态方法又不能访问页面上的控件(即重新绑定网格)。你有这样的例子吗?也许我误解了我当时读到的东西。但我一直在尝试为web表单找到一个类似的基本示例,但没有找到任何东西。如果你知道任何例子,那会很有帮助。