【问题标题】:GridView Initial Editing mode?GridView 初始编辑模式?
【发布时间】:2010-08-17 19:27:22
【问题描述】:

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

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

这是所选日期的 gridview 外观...

用户数据 ------------ 用户 1 数据 1 用户 2 数据 2 用户 3 数据 3

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

我希望它看起来像这样

用户数据 ---------------- 用户 1 文本框 用户 2 文本框 用户 3 文本框

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

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

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

【问题讨论】:

    标签: asp.net


    【解决方案1】:
    【解决方案2】:

    我将使用数据库中的左连接检索完整的数据集,如果没有用户条目,该用户将返回一个空白值。像这样的:

    选择 users.user, isnull(条目.条目,'') 来自用户 在 users.userid = entries.userid 上留下加入条目

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

    【讨论】:

    • 感谢您的快速回答,我仍然想知道如何将一行最初置于编辑模式,以及如何将 MULTIPLE 行置于最初处于编辑模式,然后使用多个更新数据源单击一次保存/应用按钮上的条目?
    猜你喜欢
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多