在datagrid下数据转换问题

imc 2007-08-22 03:31:59
设计表的时候,状态一列分别用 1草稿 2提交3关闭4删除,数据库里存的是1、2、3、4,怎么才能转换成对应的状态名称?

网上搜到的一个方法挺实用,可惜只能有两个状态。

<asp:BoundColumn DataField="states" HeaderText="文件状态"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="文件状态"><ItemTemplate>
<%#Convert.ToInt32(DataBinder.Eval(Container.DataItem, "states")) == 1 ? "草稿" : "关闭"%>
</ItemTemplate>
</asp:TemplateColumn>
...全文
98 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
best8625 2007-08-22
  • 打赏
  • 举报
回复
帮顶
Eray 2007-08-22
  • 打赏
  • 举报
回复
需要一个数组变量来记录字段列。
这个方法绝对可以符合你要的效果。不仅可以转换数据字符,还可以规定格式,保留几位小数等问题。


动态翻译表头及设定内容格式,此代码是在DataGrid的ItemDataBound事件中。

Dim i As Integer
'头部分
If e.Item.ItemType = ListItemType.Header Then

Formats = New String(e.Item.Cells.Count - 1) {}
For i = 0 To e.Item.Cells.Count - 1
Formats(i) = "M"
Next
For i = 0 To e.Item.Cells.Count - 1
If e.Item.Cells(i).Text = "CS" Then
Formats(i) = "0.00"
e.Item.Cells(i).Text = "平均车速"
ElseIf e.Item.Cells(i).Text = "LB" Then
e.Item.Cells(i).Text = "类别"
Formats(i) = "T"
End If
Next
'内容部分
ElseIf e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim j As Integer
For j = 0 To e.Item.Cells.Count - 1
If Formats(j) = "T" Then
If Trim(e.Item.Cells(j).Text) = "J" Then e.Item.Cells(j).Text = "购进"
If Trim(e.Item.Cells(j).Text) = "C" Then e.Item.Cells(j).Text = "售出"
End If
If Formats(j) = "0.00" Then
e.Item.Cells(j).Text = CType(e.Item.Cells(j).Text, Double).ToString(Formats(j))
End If
Next
End If

62,046

社区成员

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

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

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

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