aspx文件
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="c#" runat="server">
    void page_load(object sender, EventArgs e)
    {
        SqlConnection sqlcon = new SqlConnection("data source=localhost;uid=sa;pwd=z;initial catalog=experiment");
    DataSet ds = new DataSet();
        sqlcon.Open();
        SqlDataAdapter sqld = new SqlDataAdapter("select * from data", sqlcon);
        sqld.Fill(ds, "data");
        dg.DataSource = ds.Tables["data"].DefaultView;
        dg.DataBind();
        sqlcon.Close();
        sqlcon=null;
    }    
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
</title>
</head>
<body>
<form id="Form1" runat="server" action="Default.aspx">
<asp:DataGrid ID="dg" runat="server" GridLines="Both" CellSpacing="2" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="章数" HeaderText="章数" />
<asp:BoundColumn DataField="次数" HeaderText="次数" />
<asp:BoundColumn DataField="题数" HeaderText="题数" />
<asp:BoundColumn DataField="题目名字" HeaderText="题目名字" />
<asp:BoundColumn DataField="作者" HeaderText="作者" /><asp:TemplateColumn HeaderText="备注">
<ItemTemplate>
<asp:Image ImageUrl='<%# DataBinder.Eval (Container.DataItem, "备注") %>' runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
数据库中有相应的数据库和相应的表,而且和以上代码中的字段一模一样。
备注字段放的是图像的地址(相对地址),在这个地址也有这个图像。但为什么其他的字段都可以正常的显示出来,就是这个图像是个红色的叉叉
我查看图像的属性是http://localhost:1574/ASPProject/image/bentley.jpg%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20
为什么多了这么多%20,到底是怎么回事啊,我到底是哪错了,要怎么改,才能正确的显示图片呢?还有,在这个图片能正常显示后,我的另一个功能是实现,单击这个图片,我要连接到另一个aspx文件
就是相当于,这个图片是个图片按钮,怎么搞呢?

解决方案 »

  1.   

    template列用<a href='' ><img src=<库图片路径/></a>
      

  2.   

    %20是空格,看样子楼主数据库里存放图片的路径用的是char类型,这样是定长字符串,试试这样
    <%@ Page Language="C#" Debug="true" %> 
    <%@ Import Namespace="System.Data" %> 
    <%@ Import Namespace="System.Data.SqlClient" %> 
    <%@ Import Namespace="System.Data.OleDb" %> 
    <script language="c#" runat="server"> 
        void page_load(object sender, EventArgs e) 
        { 
            SqlConnection sqlcon = new SqlConnection("data source=localhost;uid=sa;pwd=z;initial catalog=experiment"); 
        DataSet ds = new DataSet(); 
            sqlcon.Open(); 
            SqlDataAdapter sqld = new SqlDataAdapter("select * from data", sqlcon); 
            sqld.Fill(ds, "data"); 
            dg.DataSource = ds.Tables["data"].DefaultView; 
            dg.DataBind(); 
            sqlcon.Close(); 
            sqlcon=null; 
        }    
    </script> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title> 
    </title> 
    </head> 
    <body> 
    <form id="Form1" runat="server" action="Default.aspx"> 
    <asp:DataGrid ID="dg" runat="server" GridLines="Both" CellSpacing="2" AutoGenerateColumns="false"> 
    <Columns> 
    <asp:BoundColumn DataField="章数" HeaderText="章数" /> 
    <asp:BoundColumn DataField="次数" HeaderText="次数" /> 
    <asp:BoundColumn DataField="题数" HeaderText="题数" /> 
    <asp:BoundColumn DataField="题目名字" HeaderText="题目名字" /> 
    <asp:BoundColumn DataField="作者" HeaderText="作者" /> <asp:TemplateColumn HeaderText="备注"> 
    <ItemTemplate> 
    <asp:Image ImageUrl=' <%# DataBinder.Eval(Container.DataItem, "备注").ToString().Trim() %>' runat="server" /> 
    </ItemTemplate> 
    </asp:TemplateColumn> 
    </Columns> 
    </asp:DataGrid> 
    </form> 
    </body> 
    </html> 
      

  3.   

    数据库内容里面有多余的空格吧。取数据的时候Trim()一下"select *,RTRIM(备注) as 备注2 from data"
    <asp:Image ImageUrl=' <%# DataBinder.Eval (Container.DataItem, "备注2") %>' runat="server" /> 
      

  4.   


    <asp:TemplateColumn HeaderText="备注"> 
    <ItemTemplate> 
    < a href="#"> <img onfous='this.blur();' src='<%# DataBinder.Eval (Container.DataItem, "备注") %></a>
    </ItemTemplate> 
    </asp:TemplateColumn> 
      

  5.   

    或用asp:imgbutton,动态的把连接和图片路径属性设置