2010-07-08 79 views
4

我试图做asp.net组合框下面的绑定:ASP.NET与EVAL

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

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

任何人都知道正确的语法,不断让对象没有设置为引用。我在VB.Net中做这个。

感谢,
吉姆

+0

也许领域之一是零,这就是为什么你得到错误。 – hallie 2010-07-08 01:42:55

+0

您定位的.NET版本是什么? 2,3.5或4? – Tommy 2010-07-08 02:39:34

+0

我针对版本2 – Joe 2010-07-08 02:43:07

回答

0

尝试

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

未将对象引用设置为对象的实例。我得到那个错误?列可以包含Null,我应该如何处理? – Joe 2010-07-08 01:42:43

+0

你需要做一些像Eval(“Name”)。Equals(DBNull.Value),在c#中有string.IsNullOrEmpty函数...不确定与VB。 – hallie 2010-07-08 01:45:37

+0

我做了一些编辑,但我没有测试它......只是尝试 – hallie 2010-07-08 01:48:18

4

试试这个(编辑)

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 
+0

好吧我现在试试吧 – Joe 2010-07-08 02:17:24

+0

从'DBNull'类型到'String'类型的转换无效。 – Joe 2010-07-08 02:19:19

+0

ah object not set to an instance – Joe 2010-07-08 02:35:01