随笔 - 31  文章 - 1 评论 - 185 trackbacks - 3
<2007年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

欢迎访问我的非技术博客:
http://Moosdau.blog.163.com

与我联系

搜索

 

常用链接

留言簿(3)

随笔分类(30)

随笔档案(31)

最新评论

阅读排行榜

评论排行榜

这里讨论的是, 增加一个图片列, 这样每一行记录都会附带一个小图片.  如下图所示:

第一列是一个小图示, 第二列显示数据, 这样比单纯显示数据要漂亮许多.

  在GridView 里显示图片, 大抵有两种办法:
<1>添加 ImageField , 绑定到数据源的某一列.
<2>编辑模板, 添加一个带Image 的列.

以下详述两种方法:
<1>添加一个gridview 到页面, 点选它的任务菜单"编辑列",  在弹出的编辑框中, 选择ImageField 并点击添加, 然后选中刚刚添加的列, 右侧面板会显示出它的属性, 在DataImageUrlField 属性中, 填入数据表中的列名. 
 

代码:

<asp:GridView ID="GridView1" runat="server">
            
<Columns>
                
<asp:ImageField DataImageUrlField="img">
                
</asp:ImageField>
            
</Columns>
        
</asp:GridView>


        然后编辑后台代码: 

 DataTable dt = new DataTable();
        DataColumn dc 
=new DataColumn();
        dt.Columns.Add(dc);
        dc
= new DataColumn("img");
        dt.Columns.Add(dc);


        DataRow dr 
= dt.NewRow();
        dr[
0= "11111111111111111";
        dr[
1= ResolveUrl("~/ok.gif");
        dt.Rows.Add(dr);

        dr 
= dt.NewRow();
        dr[
0= "22222222222222222";
        dr[
1= ResolveUrl("~/ok.gif");
        dt.Rows.Add(dr);

        GridView1.DataSource 
= dt;
        GridView1.DataBind();


       编译运行, 就会看到第一幅图片的效果.

<2>编辑模板. 
先编辑前台代码:

        <asp:GridView ID="GridView1" runat="server">
            
<Columns>
                
<asp:TemplateField>
                    
<ItemTemplate>
                       
<asp:Image ID="img1" ImageUrl='<%#Eval("img") %>' runat="server" AlternateText="image lost" />
                    
</ItemTemplate>
                
</asp:TemplateField>
            
</Columns>
        
</asp:GridView>


 

与第一种方式相仿, 它最终的实现机制也是去检索数据源的列名, 所以在Eval 里面, 以字符串的方式给出包含图片url 的列名, 后台代码不变. 最终效果与第一种方式同.

 

木刀认为: 在目前讨论的情况下, 第一种实现方法似乎更好一些, 不过xxField 控件终究有限, 如果要往里面放其它控件, 就只得借助于模板了, 所以第二种方式是更通用, 更强大的选择.

没有永恒的事
一切都在不断重复
我热爱这个世界
但绝不骄纵了它
posted on 2007-09-28 09:49 木刀 阅读(1285) 评论(3)  编辑 收藏 所属分类: asp.net 点滴

FeedBack:
#1楼  2007-12-01 11:12 余 [未注册用户]
你说的这个方法有点局限啊,如果GridView里的数据是数据库里的数据就不用写后台代码了,直接用绑定语句就可以了,该怎么添加呢?
  回复  引用    
#2楼  2008-08-14 22:21 *梅花* [未注册用户]
请问,怎么让图片在满足一定条件下实现呢?
我向用gridview列出一些日程信息,如果有设置闹钟,在gridview中显示闹钟图片,如果没有设置关闭闹钟,就不显示图片.
而且我的数据绑定时从数据库绑定的,不能一行一列的赋值.
希望能尽快得到恢复!谢谢!
  回复  引用    
#3楼 [楼主] 2008-08-15 08:19 木刀      
@*梅花* & 一楼的:
首先可以用SELECT 语句直接筛选,类似下面的语句:
SELECT
CASE WHEN ‘设置了闹钟的条件’
THEN ‘闹钟图片或路径’
ELSE
‘空’
AS ‘图片’
FROM talbeName
这样的绑定的时候,符合条件的才有数据

另外, 也可以RowDataBound 事件中逐条判断地处理。因为有时候难以在数据库中直接筛选, 必然在绑定的时候做处理。
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: