2010-08-17 98 views
3

我正在编写一个用于跟踪和输入一些日常用户数据的Web应用程序...每天我需要为多个用户手动输入一些数据...GridView初始编辑模式?

我会选择带日历的日期,而该日期我会分配给所选日期的所有用户DB值...如果在数据库中该日期我将在GridView中显示它的一些条目...

这里是GridView控件的外观进行选择日期...

 
USERS DATA 
------------ 
User1 Data1 
User2 Data2 
User3 Data3 

但是,如果我选择在DB中没有条目的日期,我想显示在GridView每行中的方含用户名,但我想的第二列(DATA字段)是对所有行初始编辑(整个第二栏应包含文本框用于插入值,而不是仅选择的行作为标准可编辑GridView的模式)希望值的允许插入...

我希望它看起来像这样

 
USERS DATA 
---------------- 
User1 TextBox 
User2 TextBox 
User3 TextBox 

我的想法是从数据库获取用户列表,并创建一个数据表与第一列方含返回的用户名,第二列是空的...这个数据表将成为gridview的数据源,我将在其中禁用编辑模式,而在正常(显示)模式下,我将使用包含textbo的TemplateField XES绑定到第二列的数据表和标签显示在第一列的用户名...当输入所有值会有SAVE按钮是谁打来的,将来自数据表中读取输入的值,并将其保存到数据库的方法...

有没有更好的方法来实现这个功能?如果模板列文本框绑定到数据表(如gridview的数据源)文本框中输入的值将是从确定年代的对象访问,但保存按钮点击会导致回传,我不知道如何保存数据表的状态?有没有更好的方法来获得想要的gridview与整个第二列availibe插入新值?

预先感谢您的帮助&时间!

回答

0

我将检索使用左边的完整数据集加入到数据库中,如果有一个用户的条目,该用户将用空值返回。事情是这样的:

选择users.user, ISNULL(entries.entry, '') 从用户 左连接上的条目users.userid = entries.userid

我想你可以覆盖OnDataBinding(或OnDataBound)方法来检查并查看第二列是否为空,并将该字段置于编辑模式(如果是)。这样,如果某些用户有条目但有些用户没有条目,则只有没有条目的用户才会处于编辑模式。任何具有条目的用户都将处于显示模式。在http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.onrowdatabound.aspx有一个这样的例子。

+0

谢谢您快速的答案,还是我想知道如何把一个行是最初在编辑模式,以及如何把多个行的最初是在编辑模式下,然后在单个保存/应用按钮上点击多个条目来更新数据源? – Zzz 2010-08-17 20:55:41