在datalist中添加的imagebutton绑定时无法显示图片,而其他绑定项目又很正常!
图片为上传文件,并将文件ID保存在zp_ID中.
代码如下: <asp:ImageButton ID="Imagebtn" Height="150" Width="200" ImageUrl='../Admin/UpFiles/设计作品/<%# DataBinder.Eval(Container.DataItem,"zp_name") %>.jpg' Runat="server">
</asp:ImageButton>将此段代码改为:
<asp:ImageButton ID="Imagebtn" Height="150" Width="200" ImageUrl='"../Admin/UpFiles/设计作品/"+<%# DataBinder.Eval(Container.DataItem,"zp_name") %>+".jpg"' Runat="server">
</asp:ImageButton>
仍然不行!
<%@ Page language="c#" Codebehind="Sjzp.aspx.cs" AutoEventWireup="false" Inherits="WebApplication3.勘察设计协会.Sjzp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Sjzp</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Sjzp" method="post" runat="server">
<table height="320" cellSpacing="0" cellPadding="0" width="600" align="center" border="0">
<tr>
<td><span class="STYLE3">设计作品展示:
<asp:button id="Button1" runat="server" Text="Button"></asp:button></span></td>
</tr>
<tr>
<td align="middle" height="174"><asp:datalist id="ZpDataList" runat="server" RepeatColumns="1" Width="99%" DataKeyField="zp_ID" GridLines="Both">
<HeaderTemplate>
<FONT face="宋体"></FONT>
</HeaderTemplate>
<FooterTemplate>
<FONT face="宋体"></FONT>
</FooterTemplate>
<ItemStyle Font-Size="Smaller"></ItemStyle>
<ItemTemplate>
<TABLE height="150" cellSpacing="0" cellPadding="0" width="100%" border="0">
<TR>
<TD width="34%" rowSpan="5">
<asp:ImageButton ID="Imagebtn" Height="150" Width="200" ImageUrl='../Admin/UpFiles/设计作品/<%# DataBinder.Eval(Container.DataItem,"zp_name") %>.jpg' Runat="server">
</asp:ImageButton></TD>
<TD width="66%" height="30"><%# DataBinder.Eval(Container.DataItem,"zp_name") %><FONT face="宋体"></FONT></TD>
</TR>
<TR>
<TD height="30"><%# DataBinder.Eval(Container.DataItem,"zp_lb") %></TD>
</TR>
<TR>
<TD height="30"><%# DataBinder.Eval(Container.DataItem,"zp_jx") %></TD>
</TR>
<TR>
<TD height="30"><%# DataBinder.Eval(Container.DataItem,"zp_sjdw") %></TD>
</TR>
<TR>
<TD height="30"><%# DataBinder.Eval(Container.DataItem,"zp_sjry") %></TD>
</TR>
</TABLE>
</ItemTemplate>
</asp:datalist></td>
</tr> </table>
</form>
</body>
</HTML>
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
                           getZp();
}
private void getZp()    //获取作品信息
{
try
{  
string con=System.Configuration.ConfigurationSettings.AppSettings["DSN"];
SqlConnection  conn = new SqlConnection(con);//连接字符串
conn.Open();
        
SqlDataAdapter myCommand = new SqlDataAdapter();  //创建SqlDataAdapter 类
  myCommand.SelectCommand=new SqlCommand("SELECT * FROM Zp_infor ORDER BY zp_name ASC",conn);

DataSet ds=new DataSet();  //建立并填充数据集
myCommand.Fill(ds,"ZpData");
ZpDataList.DataSource = ds.Tables["ZpData"];
ZpDataList.DataBind();     
conn.Close();
}
catch(SqlException e)
{
Response.Write("Exception in Main: " + e.Message); //出错处理
}
}

解决方案 »

  1.   

    如果显示不了,你看下这个时候的源文件,看看对应image的其路径属性是什么
      

  2.   

    ImageUrl='<%# "ImageView.aspx?imgid="+DataBinder.Eval(Container, "DataItem.BookGuid") %>'>
      

  3.   

    ImageUrl='"~/Admin/UpFiles/设计作品/"+<%# DataBinder.Eval(Container.DataItem,"zp_name") %>+".jpg"'
      

  4.   

    应该在后台写一函数处理地址,如GetImageUrl(string name)
    {
      return Page.ResolveUrl(String.Format("~/Admin/UpFiles/设计作品/{0}.jpg", name));
    }
    然后在前台ImageUrl='<%# GetImageUrl(DataBinder.Eval(Container, "DataItem.BookGuid")) %>'
    这样比较好一些吧