2009-09-14 63 views
6

当您开发Web应用程序时,尤其是那些处理大量数据管理(例如联系人,地址,订单等)的应用程序时,您是否通常创建接口为就地编辑或制作一个单独的“编辑”页面(和一个只查看页面)?Inplace Editing vs. Edit Page

为什么/一个优于另一个?我试图在我自己的项目上做出这样的数据管理决定,但我不确定要走哪条路。

回答

1

对于诸如主要用于查看页面的设置来编辑它的设置,内联有意义。

之后,它是关于使用更多。如果人们不断编辑它们,那么它应该是内联的。如果是说用户的详细信息,它主要是读取,有时会更改,这是我做的:

该页面没有可编辑的框查看。 如果用户希望更改某些信息,他们会弹出一个编辑按钮 显示相同的页面,但带有可编辑的字段和取消/提交按钮。

我通过具有视图实现这一情况决定基于在属性桶的值的每个字段的版本要显示的,这是由作用(MVC)

EDIT设置:

样品的要求(未经测试)

在控制器(城堡单轨),让我们说CustomerController:

public void View(int customerid) 
{ 
    PropertyBag["customer"] = Customer.Find(customerid); 
} 

public void Edit(int customerid) 
{ 
    PropertyBag["editing"] = true; 
    View(customerid); 
    RenderView("View"); 
} 

在View(盲文):

<th>Name:</th> 
<td> 
    <% if IsDefined("editing"): %> 
    <input name="c.Name" value="$customer.Name" /> 
    <% else: %> 
    $customer.Name 
    <% end %> 
</td> 
+0

你的答案很有趣,你能发表一些示例代码吗?你是如何做到这一点的(你的答案的最后部分)?这将非常有帮助。谢谢! – Alex 2009-09-14 02:59:33

+0

添加上面的示例 – 2009-09-15 04:17:35

0

我会说你应该在编辑数据时使用就地编辑是简单明了的(防白痴)。对于用户而言,选择文字处理器中的文本并对其进行输入应该不会更复杂。

如果您需要/想要显示标签,说明,错误信息等,您应该使用专用的编辑页面。或者找到一个聪明的方法来做到这一点在页面中。

此外,有时您不会完全显示用户输入的内容。例如,您显示用户的年龄,但编辑时显示出生日。那么我建议你使用一个编辑页面,因为它可能会让使用者感到困惑。

3

我认为当进行变更的'成本费用'相对较低时,内联编辑是有意义的。

例如,更改照片上的描述是非常容易的事情,如果它不完全正确,用户期望在正在编辑的照片的上下文中执行正确操作,则几乎没有风险。在这种情况下,内联对我来说是有意义的。

另一方面,在需要帮助或引导用户的应用程序中,或者更改意味着计费/运输/帐户状态发生重大变化。可以有一个单独的页面来帮助他们理解他们行为的全部后果。