怎么能在DataList中取出控件Image的值?怎么取来取去都是null。。

解决方案 »

  1.   


    <asp:DataList ID="DataListImage" runat="server" onitemdatabound="DataListImage_ItemDataBound" >
        <ItemTemplate>
            <table width="100%">
                <tr>
                    <td><asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ImageUrl")%>' ></asp:Image></td>
                </tr>
            </table>
        </ItemTemplate>
        </asp:DataList>        private void Image()
            {
                foreach (DataListItem dlItem in this.DataListImage.Items)
                {
                    Image Image1 = dlItem.FindControl("Image1") as Image;
                    string strImageUrl = Image1.ImageUrl.ToString();
                }
            }
      

  2.   


      protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
      {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {      Image m = e.Item.FindControl("x") as Image;
        }
      }<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
    </head>
    <body>
      <form id="form1" runat="server">
      <asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound">
        <ItemTemplate>
          <asp:Image ID="x" runat="server" />
        </ItemTemplate>
      </asp:DataList>
      </form>
      

  3.   


    //将上面的方法Image改为下面的ImagePhoto
    public void ImagePhoto()
            {
                foreach (DataListItem dtItem in this.DataListImage.Items)
                {
                    Image image1 = dtItem.FindControl("Image1") as Image;
                    string strImageUrl = image1.ImageUrl.ToString();
                }
            }
      

  4.   


        public string GetTopPic(object o)
        {
            Image img = (Image)(DataList7.FindControl("Image3");        
            for (int i = 0; i < DataList7.Controls.Count; i++)
            {
                img.ImageUrl = "images/top" + o.ToString() + ".gif";
            }
            return img.ToString();
        }
                                        <asp:DataList ID="DataList7" runat="server" RepeatColumns="1">
                                          <ItemTemplate>
                                                        <tr><td>
                                                            <asp:Image ID="Image3" runat="server" ImageUrl='<%# GetTopPic(Eval("TopPic")) %>' /></td>
                                                            <td valign="top">
                                                                <asp:HyperLink ID="HyperLink2" runat="server" Font-Names="宋体" 
                                                                    Font-Size="Larger" Font-Underline="false" 
                                                                    NavigateUrl='<%# Eval("id","~/Film_Z.aspx?id={0}")%>' 
                                                                    Text='<%# Eval("FilmName") %>'></asp:HyperLink>
                                                            </td>
                                                            <td align="right" valign="top">
                                                                <asp:Label ID="Label13" runat="server" Text='<%# Eval("Hits") %>' />
                                                            </td>
                                                        </tr>
                                                    </ItemTemplate>
                                                </asp:DataList>
      

  5.   

    麻烦大家帮我想想办法啊,小妹不胜感激。弄了半天了,一直取出来都是空的。
    我想实现的是如果图片的值是1的话显示top1.gif这张图片,是2就显示top2.gif。
    因为图片只能是静态的,做不了动态。但是老是取不到。。
      

  6.   

    ImageUrl='<%# GetTopPic(Eval("Id")) %>' 
    public string GetTopPic(object o)
        {
            img.ImageUrl = "images/top" + o.ToString() + ".gif";
            return img.ToString();
        }
    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
      {
      if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
      {
      Image img= e.Item.FindControl("Image3") as Image;
      img.ImageUrl = "";
    }
     }
      

  7.   


    可不可以说一下ImageUrl='<%# GetTopPic(Eval("Id")) %>' 
    这个Id是什么呢? 
      

  8.   

    你可以这样啊
    <ItemTemplate>
    <img src="<%=Page.ResolveUrl("~/")%>images/top<%#Eval("数据库字段名字")%>.gif" />
    </ItemTemplate>top1.gif ..等放在网站根目录images下面即可