利用DataGrid显示数据库内容时在DataGrid列中呈现出来的是数据库字段中原封不动的内容。现在我想对DataGrid的列的呈现效果作一些修饰,比如在列前面插入一个小图片,或加一段说明文字,代码如下:...
<asp:datagrid 
id="DataGrid1" 
runat="server" 
AutoGenerateColumns="False" 
ShowHeader="False">
  <Columns>
    <asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="id" DataNavigateUrlFormatString="P_message.aspx?id={0}" DataTextField="title"></asp:HyperLinkColumn>
    <asp:BoundColumn DataField="time"></asp:BoundColumn>
  </Columns>
</asp:datagrid>
...如上代码执行结果为:
标题5         2004/12/20
标题4         2004/12/19
标题3         2004/12/18
标题2         2004/12/18
...
现在我要在“标题”前面加上一个箭头的小图片a.gif,并在时间前面加一点文字说明,达到如下效果:
“这里显示a.gif” 标题5         [发布时间] 2004/12/20
“这里显示a.gif” 标题4         [发布时间] 2004/12/20
“这里显示a.gif” 标题3         [发布时间] 2004/12/20
“这里显示a.gif” 标题2         [发布时间] 2004/12/20
...代码如何实现?盼解。

解决方案 »

  1.   

    利用TemplateColumn,然后在Item中写上<IMG SRC="">
    <Columns>
       <asp:TemplateColumn HeaderText="NAME">
           <ItemTemplate>
              <IMG ...>
              <asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="id" DataNavigateUrlFormatString="P_message.aspx?id={0}" DataTextField="title"></asp:HyperLinkColumn>
           </ItemTemplate>
       </asp:TemplateColumn>
    </Columns>
      

  2.   

    用模板列实现<asp:TemplateColumn HeaderText="选 中">
    <HeaderStyle HorizontalAlign="Center" Width="40px"></HeaderStyle>
    <ItemTemplate>
    <image src="*.gif"><asp:label text=<%#DataBinder.Eval....%>/>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  3.   

    TemplateColumn好像不支持asp:HyperLinkColumn,另外模版列是生成一个单独的列,有没有在asp:HyperLinkColumn一个列中添加元素的实现方法?