try:
((BoundColumn)DataGrid1.Columns[1]).HeaderText="<img src=\"mypic.gif\">列名";

解决方案 »

  1.   

    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# left(DataBinder.Eval(Container, "DataItem.type"),10)%>'>
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  2.   

    你看看我的例子,只需将"↓"、"↑"换为<img src=".../>就可以了!
    http://218.84.107.5/n.aspx
      

  3.   

    <asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="objectGuid" DataNavigateUrlFormatString="ShowDetail.aspx?id={0}" DataTextField="Title" SortExpression="Title" HeaderText="" DataTextFormatString="&lt;img src=&quot;images/meng.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; hspace=&quot;5&quot;&gt;{0}"></asp:HyperLinkColumn>
      

  4.   

    我把DATAGRID绑定到数据源的 ,
    这样的话,各个字段并不会在COLUMNS中出现。
    COLUMNS是空的。
    如果:
    ((BoundColumn)DataGrid1.Columns[1]).HeaderText="<img src=\"mypic.gif\">列名";就会导致数组溢出错误
      

  5.   

    你的数据源是什么?DataTable吗?试试直接修改数据源的列标题:for(int i=0;i<mytable.Columns.Count;i++){
    mytable.Columns[i].Caption="<img src=\"mypic.gif\">"+mytable.Columns[i].Caption;
    }DataGrid1.DataSource=mytable;
    DataGrid1.DataBind();
      

  6.   

    再看一遍吧,同你一样是自动生成的列,无需知道列名,从数据源表修改:
    http://218.84.107.5/n.aspx