Aspx页面<asp:Repeater id="rpt_list" runat="server" >
<ItemTemplate >
<tr>
<td nowrap>
<%# ShowUserName(DataBinder.Eval(Container.DataItem,"C_Username")) %>
</td>
</tr>
===========
后台我是想这么处理的:
public string ShowUserName(obj obj)
{
string str = obj.ToString();
if(obj != null)
str = "Hello" + str;
else
str = "";
}============
现在当DataBinder.Eval(Container.DataItem,"C_Username") 指为Null时就会报错。请问高手指点。谢谢
<ItemTemplate >
<tr>
<td nowrap>
<%# ShowUserName(DataBinder.Eval(Container.DataItem,"C_Username")) %>
</td>
</tr>
===========
后台我是想这么处理的:
public string ShowUserName(obj obj)
{
string str = obj.ToString();
if(obj != null)
str = "Hello" + str;
else
str = "";
}============
现在当DataBinder.Eval(Container.DataItem,"C_Username") 指为Null时就会报错。请问高手指点。谢谢
你认为 Null.ToString();能运行吗?
string str = string.Empty;
if(obj != null) str = "Hello" + obj.ToString();
改成(用三元运算符):
<%# DataBinder.Eval(Container.DataItem,"C_Username")==null ? "":"Hello" + DataBinder.Eval(Container.DataItem,"C_Username") %>
<%# DataBinder.Eval(Container.DataItem,"C_Username")==null ? "":"Hello" + DataBinder.Eval(Container.DataItem,"C_Username") %>显示出来的, 几乎全部是使 “Hello”,后面的不显示出来。
public string ShowUserName(string str)
{
str = str.Trim();
if (str == null || str == string.Empty)
{
return "";
}
else
{
return "Hello" + str;
}}
Aspx:
<%# ShowUserName(DataBinder.Eval(Container, "DataItem.C_Username").ToString()) %>
代码逻辑有问题,string str = obj.ToString();
if(obj != null)
str = "Hello" + str;
else>>>> string str = null;
if(obj != null)
str = "Hello" + obj.ToString();
elseOR
比较紧凑的代码
return (obj == null) ? "" : "Hello" + obj.ToString();2.
直接使用页面声明方式, 但不推荐,因为需要两个 Eval(内部使用反射)<%# DataBinder.Eval(Container.DataItem,"C_Username") == null ? "" : "Hello" + DataBinder.Eval(Container.DataItem,"C_Username") %>Good Luck!
{
string str = String.Empty;
if(obj != null)
str = "Hello" + obj.ToString();
return str;
}
obj is null 就tostring不了的阿
逻辑的问题
2.DataBinder.Eval(Container, "DataItem.C_Username").ToString()
返回又是什么呢?
是 ""(空字符串)吗?3. 是不是