根据状态将状态日期插入gridview单元格

Posted

技术标签:

【中文标题】根据状态将状态日期插入gridview单元格【英文标题】:Insert status date into gridview cell according to status 【发布时间】:2013-11-23 05:13:51 【问题描述】:

目前我正在开发一个 Web 服务系统,使用 ASP.NET 和 C# 作为代码。对于数据库,我们使用 MS SQL。系统中有一个功能可以让您根据状态查看申请表的状态,比如待处理、进行中、已清除和已取消。页面涉及到Gridview的使用,像这样(这只是一个例子)

| 应用程序表单 ID | 日期 | 姓名 | 状态 | 状态日期 |

在我的 SQL 表中,有一些列可以容纳申请表状态的更新,例如 DatePending、DateInProgress、DateCleared、DateCancelled,即 DateInProgress 包含申请表现在经过处理并标记为 In Progress 的日期。所有这些列都在一个表中。

我现在的问题是,如何获取特定状态的日期并将其显示在 Gridview 的最后一列?例如,如果一个申请表被取消,它应该显示记录的状态为取消,并显示它被取消的日期。

输出应该是这样的:

| 应用程序表单 ID | 日期 | 姓名 | 状态 | 状态日期 |

| 12345 | 2013 年 5 月 20 日 |阿尔文 |进行中 | 2013 年 5 月 22 日

| 12346 | 2013 年 7 月 1 日 |玛吉 |清除 | 2013 年 7 月 10 日

| 12347 | 2013 年 7 月 5 日 |罗宾 |取消 | 2013 年 7 月 6 日

如果您还有其他问题/澄清,请随时表达。谢谢。

【问题讨论】:

是的,我有一个……你试过什么?似乎您需要做的就是根据您的状态运行一个 sql 查询并进行设置,但是,如果您什么都没尝试,我看不出问题... 我已经尝试从后面的代码中进行操作,例如获取状态列的内容,如果它是 In Progress,它将从 SQL 表中获取 DateInProgress 列下的相应日期并将其显示在状态日期。问题是,我不知道该怎么做。我正在尝试做的事情可能吗?还是我需要做其他事情? 你在哪里初始化你的数据?你能发布那个代码吗? 我不认为我可以,这是一大段代码,但如果有帮助,系统是一个 3 层架构。数据访问、业务逻辑和表示层 【参考方案1】:

如果我是你,我会改变我的数据库的结构。从长远来看,拥有状态和日期列对您没有帮助。此外,您如何轻松识别哪个是最新状态?您的查询必须非常复杂才能处理。

更好的做法是有一个链接的“状态”表,其结构如下:-

AppFormID <---to join to your form table
StatusType <---Pending, cancelled etc
Status Date <---obvious, really

这样设置会让你的生活轻松很多,并且不会限制你(何时)你决定要创造新的状态。

【讨论】:

状态的数量是固定的,所以不会造成太大的问题。不过,你提出的想法绝对是我最后的手段。 它会让你的生活更轻松——也许不是在短期内移动数据时,但绝对是在你继续的时候,特别是如果你决定在另一个地方改变事情。它还将使您的查询更容易构建。

以上是关于根据状态将状态日期插入gridview单元格的主要内容,如果未能解决你的问题,请参考以下文章

无法将日期选择器添加到 C# .NET gridview 单元格

将公式应用于单元格下拉列表的脚本

如何使新插入的表格视图单元格的文本字段处于活动状态?

根据相邻单元格中的值填充单元格

DEV gridview根据单元格值改变其他单元格格式

GridView合并单元格万能版(包括模板列)