求助 关于GridView的问题 绑定时如何IF多个选项

enderboy520 2010-07-06 05:23:51

RT
我数据库有两列 这样的数据列
StartDate EndDate
开始时间 结束时间

而 我的一个GirdView 上 有一个 状态列 State

我想实现的这样的效果
当前时间在 开始时间和结束时间之前 时候 State 的列中显示的是 “未开始”

当前时间在 开始时间和结束时间 其中 时候 State 的列中显示的是 “正在进行”

当前时间在 开始时间和结束时间 之后 时候 State 的列中显示的是 “已经结束 ”

这样的话 我该在 绑定的时候 Eval(“”)? 这里该怎么写判断
或者 大家有更好的实现方法


效果如上




...全文
205 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZY295449024 2012-09-05
  • 打赏
  • 举报
回复
可以在前台用三元运算符进行比较绑定
hanqing_liu 2010-07-06
  • 打赏
  • 举报
回复
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView dr = (DataRowView)e.Row.DataItem;
string starttime = dr["starttime"].ToString();
string endtitme = dr["endtitme"].ToString();
DateTime date = DateTime.Now;
//处理
e.Row.Cells[0].Text = "dd";
}
}
enderboy520 2010-07-06
  • 打赏
  • 举报
回复
我顶~~~~~~~~~~~~~~~
enderboy520 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xclpmjxm 的回复:]

在前台中
<%# GetDString(Eval(startTime),Eavl(EndTime)) %>


public string GetDString(object StarTime,Object EndTime)
{
DateTime dt=DataTime.Now.ToString("yyyy-MM-dd");
if(判断条件) ……
[/Quote]

呵呵 谢谢这位 兄弟的辛苦敲的代码
这个函数我已经实现了 虽然是差不多的 不过还是谢谢你敲了那么多

这个题未必就不能那样实现么?
还是大家都木碰到过?
xclpmjxm 2010-07-06
  • 打赏
  • 举报
回复
在前台中
<%# GetDString(Eval(startTime),Eavl(EndTime)) %>


public string GetDString(object StarTime,Object EndTime)
{
DateTime dt=DataTime.Now.ToString("yyyy-MM-dd");
if(判断条件)
{
ReTurn "未开始";
}
else if(判断条件)
{
ReTurn "正在进行";
}

else if(判断条件)
{
ReTurn "已经结束";
}
else
ReTuen "":
}
enderboy520 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yeekang_zk 的回复:]

C# code

protected void rep_Topic_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataRowView dr = (DataRowView)e.Item.DataItem;
dr["你的字段"]
}
[/Quote]
[Quote=引用 8 楼 hanqing_liu 的回复:]

<%# getStatue(Eval(startTime),Eavl(EndTime)) %>


后台方法
public string getStatue(object starttime,objject endtime)
{
//处理
}
[/Quote]


谢谢8L 9L 的热心支持
回8L
我现在就是用的这种函数的
不过没你那么绑
其实也差不多

回 9L 那个 我想知道如何能在里面用 ? : 表达式这样判断出来
不胜感谢
yeekang_zk 2010-07-06
  • 打赏
  • 举报
回复

protected void rep_Topic_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataRowView dr = (DataRowView)e.Item.DataItem;
dr["你的字段"]
}
hanqing_liu 2010-07-06
  • 打赏
  • 举报
回复
<%# getStatue(Eval(startTime),Eavl(EndTime)) %>


后台方法
public string getStatue(object starttime,objject endtime)
{
//处理
}
enderboy520 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wyq29 的回复:]

反正就这几个方法

1。 GridView1_RowDataBound 里重新赋值
2。 后台写一个简单返回函数 前台绑定数据前面加个函数名即可
3。 sql语句里case判断 直接输出

都一样的道理 没啥方便麻烦的
[/Quote]


看来我的那个想法是木有希望了

啊~~~~~~~
enderboy520 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ivws_19 的回复:]

在sql里比较方便
select (case when getdate()<startdate then '未开始' when getdate()>enddate then '已经结束' else '正在进行' end ) state
[/Quote]

哥 你太犀利了
不过我用的是SubSonic 对那个这样的操作还不太熟练
可否赐教一番?

给我一双慧眼吧
wyq29 2010-07-06
  • 打赏
  • 举报
回复
反正就这几个方法

1。 GridView1_RowDataBound 里重新赋值
2。 后台写一个简单返回函数 前台绑定数据前面加个函数名即可
3。 sql语句里case判断 直接输出

都一样的道理 没啥方便麻烦的

ivws_19 2010-07-06
  • 打赏
  • 举报
回复
在sql里比较方便
select (case when getdate()<startdate then '未开始' when getdate()>enddate then '已经结束' else '正在进行' end ) state
enderboy520 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yisuku_lee 的回复:]

GridView1_RowDataBound

在这个里面写判断然后重新赋值
[/Quote]

我确实想这样写来着 不过我不是看在那后面写比较方便不
所以想了很久没有要领
不知道有谁知道否
YISUKU_LEE 2010-07-06
  • 打赏
  • 举报
回复
GridView1_RowDataBound

在这个里面写判断然后重新赋值
enderboy520 2010-07-06
  • 打赏
  • 举报
回复
顶 回复内容太短了!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧