关于GridView数据显示的问题!

无奈的程序员 2012-12-06 02:53:43
假如我数据库中有一个类别字段,字段class字段类型为int分别为1,2,3如图:

假如我在页面用asp.net中的gridview显示这个字段,假如class为1时,显示为 收入 class为2时显示支出,为3时显示为修改,请教一下高手!谢谢!
...全文
190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeanDing1989 2012-12-06
  • 打赏
  • 举报
回复
引用 8 楼 xl476663420 的回复:
引用 3 楼 SeanDing1989 的回复:gridview的rowdatabound事件内进行处理。 Lable result = e.Row.FindControl("你的classid") as lable); 可以采用硬编码 if(result.text=="1") result.text="收入"; else if.... els……
你先判断下lable是否为空在 if(result !=null) if(result.text=="1")
lutaotony 2012-12-06
  • 打赏
  • 举报
回复
解决办法 1.就是sql前面说过。 2.就是在rowdatabound时候绑定。 3.就是在绑定的时候调用后台方法,这样会比较容易; public string GetString(int i) { if(i==1) return ""; } 这里只是举个简单例子。
遁入空门 2012-12-06
  • 打赏
  • 举报
回复
引用 6 楼 xl476663420 的回复:
引用 2 楼 jiandong_0928 的回复: gridview 的 rowdatabound事件中: switch (e.Row.Cells[index].Text) { case "1": e.Row.Cells[index].Text = "收入"; break; c……
index是列的索引
无奈的程序员 2012-12-06
  • 打赏
  • 举报
回复
引用 3 楼 SeanDing1989 的回复:
gridview的rowdatabound事件内进行处理。 Lable result = e.Row.FindControl("你的classid") as lable); 可以采用硬编码 if(result.text=="1") result.text="收入"; else if.... else.....
为什么是未将对象引用设置到对象的实例。
手可摘星辰 2012-12-06
  • 打赏
  • 举报
回复
引用 6 楼 xl476663420 的回复:
引用 2 楼 jiandong_0928 的回复:gridview 的 rowdatabound事件中: switch (e.Row.Cells[index].Text) { case "1": e.Row.Cells[index].Text = "收入"; break; ……
单元格的索引 要么sql 中处理 case .....when ..then ...end 详细的可以百度到 要么显示的时候<%#Eval("sex").tostring()=="1"?"真":"假"%> 最好必要超过三个 。 百度三目运算符
无奈的程序员 2012-12-06
  • 打赏
  • 举报
回复
引用 2 楼 jiandong_0928 的回复:
gridview 的 rowdatabound事件中: switch (e.Row.Cells[index].Text) { case "1": e.Row.Cells[index].Text = "收入"; break; case "2": e.Row.Cells[index]……
请问index是什么呢?
无奈的程序员 2012-12-06
  • 打赏
  • 举报
回复
引用 1 楼 xianyao_shi 的回复:
gridview是没办法帮你进行逻辑判断的。 通常我的做法是在sql语句里面下手,查询数据的时候判断,但我不知道你的数据来源是用何种方式,转换麻不麻烦。 select *, CASE WHEN class=1 THEN '收入' WHEN class=2 THEN '支出' else '修改' END as class1 from TableName 你看看对你有么样帮助吧。
这个index如何设置呢?
枫c_2012 2012-12-06
  • 打赏
  • 举报
回复
引用 2 楼 jiandong_0928 的回复:
gridview 的 rowdatabound事件中: switch (e.Row.Cells[index].Text) { case "1": e.Row.Cells[index].Text = "收入"; break; case "2": e.Row……
顶一下
SeanDing1989 2012-12-06
  • 打赏
  • 举报
回复
gridview的rowdatabound事件内进行处理。 Lable result = e.Row.FindControl("你的classid") as lable); 可以采用硬编码 if(result.text=="1") result.text="收入"; else if.... else.....
遁入空门 2012-12-06
  • 打赏
  • 举报
回复
gridview 的 rowdatabound事件中: switch (e.Row.Cells[index].Text) { case "1": e.Row.Cells[index].Text = "收入"; break; case "2": e.Row.Cells[index].Text = "支出"; break; case "3": e.Row.Cells[index].Text = "修改"; break; }
xianyao_shi 2012-12-06
  • 打赏
  • 举报
回复
gridview是没办法帮你进行逻辑判断的。 通常我的做法是在sql语句里面下手,查询数据的时候判断,但我不知道你的数据来源是用何种方式,转换麻不麻烦。 select *, CASE WHEN class=1 THEN '收入' WHEN class=2 THEN '支出' else '修改' END as class1 from TableName 你看看对你有么样帮助吧。

62,046

社区成员

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

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

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

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