可以这样解决,在cs页里写一函数,用于判断一个帖子是否有回复,如果有回延复,则返回回复的内容,没有则返回"无回复".然后把这个方法绑定到itemtemplate的某个控件的text(可以定义一个label控件).
下面是一个例子,用于显示某个图片,首先用IsImageAvailable()方法判断是否存在这幅图片,返回是一个布尔值,从而控制img控件和Label控件是否显示.如果有图片,则img控件显示,否则显示Label控件.
<asp:TemplateColumn runat="server" HeaderText="Photo">
<itemtemplate>
<img runat="server" width="50"  
visible='<%# IsImageAvailable(DataBinder.Eval(Container.DataItem, "lastname").ToString()) %>'
src='<%# "images\\" + DataBinder.Eval(Container.DataItem, "lastname") + ".bmp" %>' />
<asp:label runat="server" text="<i><small>No picture available.</small></i>" 
visible='<%# !IsImageAvailable(DataBinder.Eval(Container.DataItem, "lastname").ToString()) %>' />
</itemtemplate>
           </asp:TemplateColumn>//IsImageAvailable()函数
private bool IsImageAvailable(String strLastName)
{
String strImageFile = "images\\" + strLastName + ".bmp";
return File.Exists(Server.MapPath(strImageFile));
}
解决思路大概就是这样.

解决方案 »

  1.   

    还有一点没说,没有图片时用Label控件显示"No picture available"
      

  2.   

    我研究了一下,也提供一种解决方案——直接用select语句:
    select GuestName,case when(ReplyContent is null) then 'none' else ReplyContent end as reply from GuestBook好了,结账!
      

  3.   

    你用datagrid 实现吧,如果字段值为NULL,它会自动默认为空.
    你可以把你的数据存为一个DATASET,然后再绑定到datagrid 上,
    使用FOR 循环来判断,如果一个字段为空,如下赋值:
    for (int i, i<ds.table[0].rows.count,i++)
    {
    ds.table[0].row[i]["字段"] = "未回复";