1.如何实现image控件后台绑定其链接指向,请教?在页面上有多个image控件,它们的ImageUrl是从数据库中读出的。
象这样:image1.ImageUrl = "photo/" + dr.GetValue(3).ToString();数据库表中不仅提供img1,img2(图片地址)字段,还提供了此图片指向的链接地址字段addr_1,addr_2
可是image控件没有NavigateUrl链接属性,无法从后台绑定其链接指向,
如何实现image控件后台绑定其链接指向,请教?思路:是否是在image控件上加上<a href=" "></a>, 而后台是用SqlDataReader读取链接地址字段addr, 得到如:dr.GetValue(1).ToString()的形式。又如何将其绑定到<a href=" ">上呀。请教?2.另一个问题,
同样,在页面上有多个image控件,它们的ImageUrl是从数据库中读出的。不同的是,因为不需要图片链接,所以数据库无此图片指向的链接地址字段.
由于页面美观的考虑,image控件设定其宽高,即图片被缩小了。想实现点击小图弹窗,在其中呈现大图的效果。而且是同一个弹窗中。思路:可能还是要在image控件上加上<a href="tanchuang.aspx?参数 "></a>,这样才变成链接,才能弹窗, 弹窗还要从数据库中获取ImageUrl字段(和小图同一字段),如果弹窗能随图片大小而自适应就更好了。如何能实现呢?师兄请给段代码吧!

解决方案 »

  1.   

    IMageBUtton也没有NavigateUrl链接属性呀
      

  2.   

    我觉得楼主的两个问题都有多张图片,这些可以只用DataGrid或者DataList来做
    在里面放入图片控件,然后后台绑定DataGrid或者DataList控件
    然后在Html代码里使用<%#%>来取值
    1.
    <ItemTemplate>
    <a href='<%# DataBinder.Eval(Container,"DataItem.linkurl")%>' target=_blank><IMG alt="" src='<%# DataBinder.Eval(Container,"DataItem.linkimg")%>' border=0 height=35 width=100></a>
    </ItemTemplate>
    linkurl为连接的地址,linkimg为图片2.点击图片弹出大图片
    <ItemTemplate>
    <A href='../AdminManage/EnterImages/<%# DataBinder.Eval(Container,"DataItem")%>' target=_blank>
    <IMG alt="" width=82 height=68 src='../AdminManage/EnterImages/<%# DataBinder.Eval(Container,"DataItem")%>' border=0 ></A>
    </ItemTemplate>
    以上的图片是放在一个固定的文件夹中的
      

  3.   

    按照sunnystar365(一个人的天空) 的思路。我成功的做出弹窗。
    可还有一个问题不能解决。就是数据库中有8个图片地址字段。页面的DataList中有8个Image控件与之对应。但并不是每一条记录的图片地址字段都有内容。也就是说一条记录有5个图片,另一条可能没有。我想实现一个循环判断。字段为空的话就Image控件不在页上显示。这样就不会在页面出现图片空位的符号。我是这样写的。string strCom2 =  "SELECTimage1,image2,image3,image4 ,image5,image6,image7,image8, "+
    "sm1,sm2,sm3,sm4,sm5,sm6,sm7,sm8  FROM info  where id = '"+Request.QueryString["id"]+"' ";
    SqlCommand selCom2 = new SqlCommand(strCom2, myConnection);
    System.Data.SqlClient.SqlDataReader dr2;     
    dr2 = selCom2.ExecuteReader();dr2.Read();
    for( int i=1; i<= 8;i++)
     {
      if ( dr2.GetValue(i-1).ToString() != "" || dr2.GetValue(i-1) != null)
        {
           ((System.Web.UI.WebControls.Image)DataList1.FindControl("Image" + i)).Visible = true;
        }
      else  ((System.Web.UI.WebControls.Image)DataList1.FindControl("Image" + i)).Visible = false;
        }

    DataList1.DataSource = dr2;
    DataList1.DataBind();dr2.Close();可以出现提示生成:但运行时出现未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。请教??
      

  4.   

    if ( dr2.GetValue(i-1).ToString() != "" || dr2.GetValue(i-1) != null)是这个判断错误了....先判断dr2.GetValue(i-1)是否为null,然后在执行..
      

  5.   

    string aa = ds.Tables[0].Rows[0][0].ToString();
    Label1.Text = "<a href=news/detial.aspx?id="+ds.Tables[0].Rows[0][0].ToString()+" target='_blank'>"+ds.Tables[0].Rows[0][1].ToString()+"</a>";

    PlaceHolder1.Controls.Add(new LiteralControl("<a href=news/detial.aspx?id="+ds.Tables[0].Rows[0][0].ToString()+" target='_blank' ><img src='topbluecat/Uploads/"+ds.Tables[0].Rows[0][2].ToString()+"'border = 0 alt="+ds.Tables[0].Rows[0][3].ToString()+"></img></a>"));
      

  6.   

    if(ds.Tables[0].Rows.Count == 0)
    {
    PlaceHolder1.Controls.Add(new LiteralControl("<img src='images/bankuai.gif' border = 0></img>"));

    }
    else
    {
    string aa = ds.Tables[0].Rows[0][0].ToString();
    Label1.Text = "<a href=news/detial.aspx?id="+ds.Tables[0].Rows[0][0].ToString()+" target='_blank'>"+ds.Tables[0].Rows[0][1].ToString()+"</a>";

    PlaceHolder1.Controls.Add(new LiteralControl("<a href=news/detial.aspx?id="+ds.Tables[0].Rows[0][0].ToString()+" target='_blank' ><img src='topbluecat/Uploads/"+ds.Tables[0].Rows[0][2].ToString()+"'border = 0 alt="+ds.Tables[0].Rows[0][3].ToString()+"></img></a>"));
    }
      

  7.   

    vzxq(灵感人) 你写的我看不懂呀。能解释一下吗。