GridView初始编辑模式?

时间:2010-08-17 19:27:23

标签: asp.net

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

我将选择日历和日历,并且在该日期我将获得在所选日期为所有用户分配的DB值...如果数据库中有一些条目用于该日期,我将在gridview中显示它...

以下是所选日期的gridview外观......

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

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

我希望它看起来像这样

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

我的想法是从DB获取用户列表并创建一个数据表,第一列包含返回的用户名,第二列为空...此数据表将是gridview的数据源,我将在其中禁用编辑模式,并在正常(显示)模式我将让TemplateField包含绑定到第二列中该数据表的文本框,以及在第一列中显示用户名的标签...当输入所有值时,将有一个SAVE按钮正在调用将读取的数据数据表中的值并将其保存到数据库...

有没有更好的方法来实现此功能?如果将Templatefield文本框绑定到datatable(作为gridview数据源),则可以从datable对象访问输入值的文本框,但Save按钮单击会导致回发,我不知道如何保留数据表状态?有没有更好的方法来获得想要的gridview与整个第二列availibe插入新值?

提前感谢您的帮助&时间!

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分: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有一个示例。