datagrid里,当字段为空值时的处理问题

annio 2005-07-12 12:25:52
从oracle数据库表读出的数据,绑定到datagrid

比如读出数据是这样:(其中行1字段2为空,即表中该字段值为空)

字段1 字段2
行1 a

行2 b e

我在ItemDataBound事件中处理:
if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{
if(e.Item.Cells[2].Length == 0)
{
处理1;
}
else
{
处理2;
}
}

但是运行时候发现,处理1不执行,2行记录都是执行处理2,也就是说字段2有空值,但却执行不到处理1。

可是,我读出结果集中行1字段2(即DataTable.Rows[0][1])的长度在Label中发现确实长度是0。可是为什么处理1执行不到?

我也试过用e.Item.Cells[2].Text == null
e.Item.Cells[2].Text == ""
e.Item.Cells[2].Text == null || e.Item.Cells[2].Text == ""

这3个条件也一样执行不到“处理1”!

怪事了
...全文
329 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
annio 2005-07-12
  • 打赏
  • 举报
回复
声明:

上面所有的e.Item.Cells[2] 应该是 e.Item.Cells[1]

我写错了。

---------------------------------
各位帮我看看为什么执行不到“处理1”???


annio 2005-07-12
  • 打赏
  • 举报
回复
从一个朋友那里得到解释(ps:这个朋友还是女滴~~~)

用这个来判断

if(e.Item.Cells[2].Text.Trim() == " ")

她的解释如下:
datagrid在页面上显示出来后,空值转换为html,是 " "


ps:太强了!!!
daishengs 2005-07-12
  • 打赏
  • 举报
回复
在SQL语句中用isnull('a','')
syeerzy 2005-07-12
  • 打赏
  • 举报
回复
加个断点,给 (e.Item.Cells[1]) 添加一个监视,看看怎么回事,也有可能Cells[1]里面是个空格( )或是个其他html标签(<td></td>)???
annio 2005-07-12
  • 打赏
  • 举报
回复
(e.Item.Cells[1].text + "a" == "a") 这个方法也不行,


问题是连e.Item.Cells[2].Text.Length == 0这个方法来判断都不可以,而我试过,确实显示出来长度是0啊。

难道我是错在其它地方?
syeerzy 2005-07-12
  • 打赏
  • 举报
回复
if(e.Item.Cells[1].text + "a" == "a") 呵呵,够绝,收藏!
mylover002 2005-07-12
  • 打赏
  • 举报
回复
在db中先处理以下了:isnull('a','')
hchxxzx 2005-07-12
  • 打赏
  • 举报
回复
由于从数据库中读取出来的值,有两种表现空的形式,一种是"",没有值,一种是null,当你以如下方式进行判断的时候
if(xxx == "")
那么,值为null的,将不通过此判断,因为null并非等于"",所以,最简单的方式如下:
if(e.Item.Cells[1].text + "a" == "a")
这样可同时起到判断""和null的作用.
annio 2005-07-12
  • 打赏
  • 举报
回复
lxg13(翔子) 的方法可以,谢谢,一会马上揭帖


但我想问一下为什么我写的那些条件都不能判断到空值,

另:还有其它判断方法么?

谢谢!
祥子_13 2005-07-12
  • 打赏
  • 举报
回复
if(Convert.IsDBNull(DataBinder.Eval(e.Item.Data,"字段2")))
处理1;
else
处理2;
codeangel 2005-07-12
  • 打赏
  • 举报
回复
if(e.Item.Cells[1].Length == 0 && e.Item.Cells[1].text==null)
{
处理1;
}
else
{
处理2;
}

62,243

社区成员

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

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

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

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