【问题标题】:ASP.NET Binding with EVALASP.NET 与 EVAL 的绑定
【发布时间】:2010-07-08 01:31:10
【问题描述】:

我正在尝试为 asp.net 组合框执行以下操作:

Text='<%# IIf(Eval("Name").ToString().Equals(""), Bind("Other"), Bind("Name") %>'  

我要做的是,如果“名称”列为空,则绑定到“其他”列,否则绑定到“名称”列。

任何人都知道正确的语法,不断获取未设置为引用的对象。我在 VB.Net 中这样做。

谢谢,
吉姆

【问题讨论】:

  • 可能其中一个字段为空,这就是您收到该错误的原因。
  • 您的目标是什么版本的 .NET? 2、3.5 还是 4?

标签: asp.net vb.net data-binding


【解决方案1】:

试试这个(已编辑)

Text='<%# If(Not Eval("Name").ToString.Length = 0, Eval("Name") , Eval("Other")) %>' 

如果这不起作用,那么您可能必须构建一个代码隐藏方法

Text='<%# RetrieveName(Eval("Name"),Eval("Other"))'

代码背后

Public Function RetrieveName(Byval name As String?, Byval other As String?) As String
  If Not String.IsDBNull(name) Then
    return name
  ElseIf String.IsDBNull(name) AndAlso Not String.IsDBNull(other) Then
    return other
  Else
    return String.Empty
  End If
End Function

【讨论】:

  • 从“DBNull”类型到“String”类型的转换无效。
  • ah 对象未设置为实例
  • 抱歉,我忘记在函数末尾添加“作为字符串” - 现在已修复。
  • 所以,在你正在测试的内容中.. Name 显然是 NULL ;-)
  • 我想我将给出这个从“DBNull”类型到“String”类型的转换无效。
【解决方案2】:

试试

Text='<%# IIf(Eval("Name").Equals(DBNull.Value), Eval("Other") , Eval("Name")) %>' 

【讨论】:

  • 对象引用未设置为对象的实例。我得到那个错误?列可以包含 Null,我应该如何处理?
  • 你需要做一些类似 Eval("Name").Equals(DBNull.Value) 的事情,在 c# 中有 string.IsNullOrEmpty 函数...不确定 VB。
  • 从“DBNull”类型到“String”类型的转换无效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 2012-06-06
  • 2012-02-21
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 2014-01-19
相关资源
最近更新 更多