if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lb = (Label)e.Row.FindControl("Label1");
            int aa = Convert.ToInt32(lb.Text);
            if (aa == 0)
            {
                lb.Text = "<img src='images/s_blue_1.gif' />";
            }
            else if (aa == 1)
            {
                lb.Text = "<img src='images/s_blue_2.gif' />";
            }
            else if (aa == 2)
            {
                lb.Text = "<img src='images/s_blue_3.gif'  />";
            }
            else
            {
                lb.Text="";
            }        }

解决方案 »

  1.   

    <asp:TemplateField HeaderText="发帖类型">   
        <ItemTemplate>   
            <img src='<%# "images/" +  showImg(Convert.ToInt32(Eval("Type")))%> ' /> 
        </ItemTemplate>   
    </asp:TemplateField>
      

  2.   

    参数用object 传递,也可以在页面里面就转换数据类型。
      

  3.   

    这里排除参数类型是int或是string,因为这个我自己改过,这个不用考虑
    ==========
    我感觉就应该考虑这个,像高歌一样,改成:
    <img   src='images/ <%# showImg(Convert.ToInt32(Eval("Type").ToString()))%> '   /> 
      

  4.   

    Eval("Type")这个绑定出来的时候是object,需要进行类型转换的,我也碰到过的
      

  5.   

    不知道楼主的开发环境是什么,我在VS2005中测试了一下,如果按照楼主的写法,即:<img src='images/<%# showImg(Eval("Type")) %>' />那么在编译的时候就会出错:
    1、与“TestDataBind.showImg(int)”最匹配的重载方法具有一些无效参数
    2、参数"1": 无法从“object”转换为“int”而如果写成如下形式:<img src='images/<%# showImg(Convert.ToInt32(Eval("Type"))) %>' />就可以正常运行!所以应该参数类型的问题,要进行数据类型转换!!
      

  6.   

    哈哈,嗯嗯!是大家说的那样,在VS2005下,就是6楼的那个错误!原来我没有tostring啊!怪不得,还是基础不行,
    Eval("Type")这个绑定出来的时候是object,需要进行类型转换的是不是这么说啊??