我正在编写一个用于跟踪和输入一些日常用户数据的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插入新值?
提前感谢您的帮助&时间!
答案 0 :(得分:1)
试试这个
http://www.highoncoding.com/Articles/219_GridView_All_Rows_in_Edit_Mode.aspx
http://csharpdotnetfreak.blogspot.com/2009/05/edit-multiple-records-gridview-checkbox.html
答案 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有一个示例。