在GridView中如何用图片替换原来数据库字段中的文字,比如字段是“1”“2”“3”则分别用不同的GIF图片对应显示 各位老师:在GridView中如何用图片替换原来数据库字段中的文字,比如字段是“1”“2”“3”则分别用不同的GIF图片对应显示? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道你是要动态的还是半动态的半动态的那就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 把第二列隐藏就可以鸟 各位老师,本人刚开始玩这个咚咚,有很多地方不会我把当前的代码写在下面,我该如何用各位老师给的方法修改,请老师直接写代码,给您添麻烦了代码如下 </asp:BoundField> <asp:BoundField DataField="状态" HeaderText="状态" SortExpression="状态" > <ItemStyle HorizontalAlign="Center" /> <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”可以里边可以任意实现,从一个图片,到一个复杂的应用,不论如何实现,都自动插入页面中。对重要的、经常改变、你的程序的亮点的局部插件,完全应该这样先把它独立划分出来单独开发。 我是这样做的.public static string Imgurl(object fild){ //这里做个你的传入值的判断,然后返回这个值得图片所在位置;}在模板里加一个html 图片<img src='<%# Imgurl(Eval("fild")) %>大体意思是这样! 什么问题 模态窗口选择图片 父页面预览? 关与自定义类库的问题 asp.net从数据库读取图片的问题 求教:Javascript中的对象如何传递给ASP.NET 请问如何在.cs文件里,运行CustomValidator控件?小弟在线等! 简单问题在线等待??马上结贴 菜鸟的问题,如果您回答了,我将满分送上! 在一個html table中嵌套兩個web table服務器控件出錯 关于Session奇怪的问题!!!(昨天还正常,睡了一觉,就开始出错了)Help me! 大家说说在公司运行.net都是什么配置啊 关于petshop 4.0 没有后台的问题
这样更好维护
假如你图片的路径是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 把第二列隐藏就可以鸟
代码如下
</asp:BoundField>
<asp:BoundField DataField="状态" HeaderText="状态" SortExpression="状态" >
<ItemStyle HorizontalAlign="Center" />
就是用这个最简单是。把不同装态图片命名为1,2,3,....直接绑定上就行了是。
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 = “你图片的路径” ;
}
}
{
//判断处理
return "<img src=...";
}
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”可以里边可以任意实现,从一个图片,到一个复杂的应用,不论如何实现,都自动插入页面中。对重要的、经常改变、你的程序的亮点的局部插件,完全应该这样先把它独立划分出来单独开发。
{
//这里做个你的传入值的判断,然后返回这个值得图片所在位置;
}在模板里加一个html 图片
<img src='<%# Imgurl(Eval("fild")) %>
大体意思是这样!