首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

在GridView中怎么用图片替换原来数据库字段中的文字,比如字段是“1”“2”“3”则分别用不同的GIF图片对应显示

2012-01-24 
在GridView中如何用图片替换原来数据库字段中的文字,比如字段是“1”“2”“3”则分别用不同的GIF图片对应显示各

在GridView中如何用图片替换原来数据库字段中的文字,比如字段是“1”“2”“3”则分别用不同的GIF图片对应显示
各位老师:
在GridView中如何用图片替换原来数据库字段中的文字,比如字段是“1”“2”“3”则分别用不同的GIF图片对应显示?

[解决办法]
不知道你是要动态的还是半动态的

半动态的那就switch-case

其实动态的那种用得更多 一般多建张数据表 把那个字段和图片位置关联
这样更好维护
[解决办法]
<img src= ' <%#Eval( "字段 ")%> .gif '>
[解决办法]
你把图片名搞成1.gif,2.gif......
假如你图片的路径是path
然后在绑定private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
里写
if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
((Image)e.Item.Cells[0].FindControl( "ImageID ")).ImageUrl = this.Server.MapPath( "path " + e.Item.Cells[1].Text + ".gif ") ;
}
以上假设是你的Iamge在datagrid第一列,你那个什么1 2 3 4..在第2列,如果不要出现那个1 2 3 4 把第二列隐藏就可以鸟
[解决办法]
<img src= ' <%#Eval( "字段 ")%> .gif '>
就是用这个最简单是。把不同装态图片命名为1,2,3,....直接绑定上就行了是。

[解决办法]
你绑定你数据库的字段到一个列,再建一个模板列,放Image控件
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
swtch(e.Item.Cells[你绑定的列])
{
((Image)e.Item.Cells[你图片的列数].FindControl( "ImageID ")).ImageUrl = “你图片的路径” ;
}
}

[解决办法]
顺便说一下,以后发短消息给我不要一发就是好几封,还是一样内容的!
[解决办法]
也可以在摸版列里使用自定义方法

<%#ShowPic(Eval( "xx字段 "))%>

public string ShowPic(string x)
{
//判断处理
return " <img src=... ";
}
[解决办法]
我给你一个把软件做大的建议:

1. 你可以在工程中选择增加一个用户控件文件,假设其名叫做“我的控件.ascx”。

2. 在其中拖入一个image控件。

3. 写上代码:
private int _num;

public int Num
{
set
{
_num = value;
}
}

protected override void OnPreRender(EventArgs e)
{
this.Image1.ImageUrl = "~/images/test " + _num.ToString() + ".jpg ";
base.OnPreRender(e);
}

4. 回到你的页面。在GridView中你要自由处理的这一列转换为模板列。

5. 编辑模板,从工程列表中把“我的控件.ascx”拖入。

6. 看你的GridView的代码,你可以看到:
<ItemTemplate>
<uc1:我的控件 ID= "我的控件1 " runat= "server " Num= "1 " />
</ItemTemplate>
此时你可以给我的控件的Num榜定数字。注意,使业务逻辑中的数字,而不是图片路径。路径是在控件中才自己生成的。


这并不比上面直接在GridView代码中去设计和写最底层的实现复杂多少,我觉得最多多花1分钟时间。实际上,当需求变得复杂的时候,这样做总是很干净利落的,理解和维护都很方便,责任层次清晰。

“我的控件.ascx”可以里边可以任意实现,从一个图片,到一个复杂的应用,不论如何实现,都自动插入页面中。对重要的、经常改变、你的程序的亮点的局部插件,完全应该这样先把它独立划分出来单独开发。
[解决办法]
都说完了
[解决办法]
mark
[解决办法]
好像没我什么事了
[解决办法]
同意孟子的方式,简单有效,容易扩展


[解决办法]
我是这样做的.

public static string Imgurl(object fild)
{
//这里做个你的传入值的判断,然后返回这个值得图片所在位置;
}

在模板里加一个html 图片
<img src= ' <%# Imgurl(Eval( "fild ")) %>
大体意思是这样!

热点排行