GridView与Image
目前的情况:jpg图片放在一共享文件夹里,共享路径如:\\127.0.0.1\image\
GridView对应的数据源有一个字段存储的相应的图片完整路径,如:\\127.0.0.1\image\123.jpg
现在想实现,点击GridView一个某行自定义列时,在边上的image控件能根据给定的图片完整路径把图片显示出来
<asp:TemplateField HeaderText="图片"><ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/search.gif" OnClick="ShowImage_Click" />
</ItemTemplate>
</asp:TemplateField>
后台代码:
protected void ShowImage_Click(object sender, GridViewRowEventArgs e)
{
if (System.IO.File.Exists(Convert.ToString(DataBinder.Eval(e.Row.DataItem, "imgurl"))) == true)
{
Image1.ImageUrl = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "imgurl"));
Image1.DataBind();
}
else
{
Image1.ImageUrl = "";
Image1.DataBind();
}
}
但是这样写有问题!
请各位不吝赐教!谢谢啦!
------解决方案--------------------
就只是点击显示?
那方法很多啊。。。你可以先就放在一个Image的ImageUrl里。。。Visible设为false
点击用FindControl找到Image控件,改变其Visilble
也可以把图片路径先放在一个隐藏中,点击,先FindControl这个路径控件,得到值,
然后用FindControl找到展示控件,赋值就可以了
------解决方案--------------------
C# code
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="id" Width="402px" ShowFooter="true" >
<Columns>
<asp:TemplateField >
<HeaderTemplate>Product</HeaderTemplate>
<ItemTemplate><%#Eval("Product") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>Version</HeaderTemplate>
<ItemTemplate>
<asp:HiddenField ID="hfUrl" runat="server" Value="<%#Eval("imgUrl")%>">"/>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/search.gif" OnClick="ShowImage_Click" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>Version</HeaderTemplate>
<ItemTemplate> <asp:Image ID="test" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void ShowImage_Click(object sender, GridViewRowEventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
HiddenField hf = GridView1.Rows[i].Cells[0].FindControl("hfUrl") as HiddenField;
Image im = GridView1.Rows[i].Cells[0].FindControl("test") as Image;
im.ImageUrl = "../imaghes/"+hf;
}
}
------解决方案--------------------
------解决方案--------------------
图片路径先放在一个隐藏中,点击,先FindControl这个路径控件,得到值,
然后用FindControl找到展示控件,赋值就可以了
------解决方案--------------------
lz怎么解决的,说下吧,没看出问题来,学习....
------解决方案--------------------