DataList显示表格内容(姓名,备注),如果在DataList中有一项备注为空,要使得对应姓名这一项背景格为红,应该怎么办????

解决方案 »

  1.   

    在绑定的时候判断,DataList1_ItemDataBound得时候判断里面的备注是否为空,如果为空,将backcolor设置为red
      

  2.   

    public string makecolor(str)
    {
    if (str=="")
    {
    return "<table bgcolor=red>.......</table>"
    }
    return str
    }<%# makecolor(databinder.eval()......   .tostring())%>随便写的.差不多就是这个意思.
    用一个方法.如果为空,就打出一个table windth=100%的.北京为红的.
      

  3.   

    在绑定的时候判断,DataList1_ItemDataBound得时候判断里面的备注是否为空,如果为空,将backcolor设置为red
    代码应该怎么写??????
      

  4.   

    将谁的背景设为红色?DataList 里好像不能控制元素所在的容器吧DataGrid 可以
      

  5.   

    假设是直接在表格内用<%# DataBinder.Eval(Container, "DataItem.ban_sno") %>方式绑定的话,那么,只能取到该整记录并且包含HTML代码,无法直接取指定的某列记录内容.
    假设是以控件绑定的方式,那么可以通过查找控件的方式来确定.比如是用Label控件绑定的如:
    <asp:Label ID=mylabel Runat=server Text='<%# DataBinder.Eval(Container, "DataItem.ban_sno") %>'></asp:Label>
    那么如下://先绑定控件
    .....
    this.myList.DataBind();//立即再进行循环
    for(int i=0;i<this.myList.Items.Count;i++)
    {  
      Label mylab = (Label)this.myList.Items[i].FindControl("Label1");
      if(mylab.Text == "")
      {
    //只能对该控件的底色做判断,无法对单元格做判断
        mylab.BackColor = System.Drawing.Color.Red;
      }
    }
     
      

  6.   

    上述的寻找控件,控件名写错了.应为mylabel 
    另外,如果你直接在datalist里面应用服务器控件表格的话,那么就可以实现对某行某列做任意处理.
      

  7.   

    同意: xiaomaolover(笨 笨)
      

  8.   

    我是直接在表格内用<%# DataBinder.Eval(Container, "DataItem.ban_sno") %>方式绑定的,那么,只能取到该整记录并且包含HTML代码,无法直接取指定的某列记录内容.
    如果是这样,那怎样使得整条记录都显示红色????
      

  9.   

    我是直接在表格内用<%# DataBinder.Eval(Container, "DataItem.ban_sno") %>方式绑定的
    那怎样使得整条记录都显示红色????
    大家帮帮忙!!!
      

  10.   

    整行变色较容易,上面的代码修改如下:
    //立即再进行循环
    for(int i=0;i<this.myList.Items.Count;i++)
    {  
    Label mylab = (Label)this.myList.Items[i].FindControl("Label1");
    if(mylab.Text == "")
    {
         this.myList.Items[i].BackColor = System.Drawing.Color.Red;
    }
    }前提是你的表格不能有背景色.