<asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound"
                                        RepeatColumns="3" RepeatDirection="Horizontal" Width="544px" OnItemCommand="DataList1_ItemCommand" DataKeyField="photoID">
                                        <ItemTemplate>
                                            <table border="0" cellspacing="0" cellpadding="0">
                                                <tr>
                                                    <td width="25%" align="center">
                                                                                                                   <img src="<%#Eval("PhotoUrls") %>" width="180" height="208" alt="<%#Eval("ProdcutName")%>" />
                                                        <p class="prostyle">
                                                            <asp:DataList ID="dl_Group" runat="server" RepeatColumns="5" RepeatDirection="Horizontal"
                                                                Width="90px">
                                                                <ItemTemplate>
                                                                   <asp:ImageButton ImageUrl='<%#Eval("ProductColor") %>'  height="24" width="24" CommandName="yes" runat="server"/>
                                                                    &nbsp;&nbsp;
                                                                </ItemTemplate>
                                                            </asp:DataList>                                                        </p>                                             </td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </asp:DataList>我这样一段代码,DataList控件里还有一个,当点击ImageButton控件时,改变img的图片,请问如何实现呢?我是这样写的,但中间有点不知道怎样写了,请帮我一下:
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        int index = Convert.ToInt32(e.CommandArgument);        string KeyID = this.DataList1.DataKeys[index]["PhotoID"].ToString();        switch (e.CommandName)
        {
            case "yes":
                {
                    //这里如何换图片呢?
                }
                break;
        }
    }

解决方案 »

  1.   

    先在模板列找到你的图片控件,如下
    Image img=(Image)e.Item.FindControl(“your control name”);
    然后设置img的图片路径。
    差不多这样吧。
      

  2.   

    楼上的是没错.但是DataList1中又嵌套了一个DataList 控件,我要如何定义dl_Group的ItemCommand事件了.
      

  3.   


    <img src=" <%#Eval("PhotoUrls") %> " width="180" height="208" alt=" <%#Eval("ProdcutName")%> " />修改成<img id='img1' runat="server" src=" <%#Eval("PhotoUrls") %> " width="180" height="208" alt=" <%#Eval("ProdcutName")%> " />
    然后:protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) 
        { 
            int index = Convert.ToInt32(e.CommandArgument);         string KeyID = this.DataList1.DataKeys[index]["PhotoID"].ToString();         switch (e.CommandName) 
            { 
                case "yes": 
                    { 
                       System.Web.UI.HtmlControls.HtmlImage img1=
            (System.Web.UI.HtmlControls.HtmlImage)this.DataList1.Items[e.Item.ItemIndex].FindControl("img1");
            img1.Src = "1.jpg"; 
                    } 
                    break; 
            } 
        }
      

  4.   

    DataList1_ItemCommand(object source, DataListCommandEventArgs e) 这个事件是DataList1的一个事件,而<asp:ImageButton ImageUrl=' <%#Eval("ProductColor") %> '  height="24" width="24" CommandName="yes" runat="server"/> 是在里面一个DataList的,如何点击里面的一个DataList,让它换外面一个DataList的图片?