读书人

关于GridView的有关问题 绑定时怎么I

发布时间: 2012-09-13 09:51:53 作者: rapoo

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

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

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

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

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

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

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


效果如上






[解决办法]
在sql里比较方便
select (case when getdate()<startdate then '未开始' when getdate()>enddate then '已经结束' else '正在进行' end ) state
[解决办法]
反正就这几个方法

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

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


[解决办法]
<%# getStatue(Eval(startTime),Eavl(EndTime)) %>


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

C# code
protected void rep_Topic_ItemDataBound(object sender, RepeaterItemEventArgs e)    {        DataRowView dr = (DataRowView)e.Item.DataItem;                           dr["你的字段"]  }
[解决办法]
在前台中
<%# 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 "":
}
[解决办法]
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";
}
}

读书人网 >asp.net

热点推荐