请问C# DataList 如何动态替换<ItemTemplate>里的数据
我想实现淘宝那样的功能  横向排列 和纵向排列横向排列显示1条产品信息  纵向 显示4条产品信息css 都有了 可是 怎么动态的替换<ItemTemplate>里的css不然 就会 显示4条横向的  会超长 我想替换成 纵向的 css。请问该如何下手。多谢大虾指点

解决方案 »

  1.   

    设置模版列
    DataList list = new DataList();
    list.ItemTemplate = Page.LoadTemplate("A.ascx");
    list.ItemDataBound += new DataListItemEventHandler(list_ItemDataBound);
    list.DataSource = dt;
    list.DataBind();
    动态加载模版,或repeater通过cookie记录数据,JS修改
      

  2.   

    在DataList的ItemDataBound事件中动态的替换Css,
    楼主可贴点代码!
      

  3.   


     <asp:DataList ID="DataList1" runat="server" >
                        
                         <ItemTemplate>
                         <dd>
                            <div class="img">
                                <a href='../product.aspx?id=<%#Eval("pc_id") %>' title='<%#Eval("pc_name") %>'>
                                    <img alt='<%#Eval("pc_name") %>' class="Picture125"
                                        src='<%# "../images/"+Eval("pc_path").ToString() + "/"+ Eval("pc_photo").ToString()%>'
                                        style="color: #0000ff; text-decoration: underline" /></a>
                            </div>
                            <div class="detail">
                                <ul>
                                    <li class="name">
                                        <h4>
                                            <a class="title" href='../product.aspx?id=<%#Eval("pc_id") %>' title='<%#Eval("pc_name") %>'>
                                                <span style="text-decoration: underline"><span style="color: #0000ff"><%#Eval("pc_name") %> </span><font class="description"><span style="color: #0000ff">
                                                        绝对性价比体现</span></font></span></a></h4>
                                    </li>
                                    <li class="icon"></li>
                                    <li></li>
                                    <li>厂商 HP 惠普</li>
                                    <li>硬盘容量 250G</li>
                                    <li>内存容量 1G(1*1G)</li>
                                    <li><span style="float: left">评论:</span> <a class="rank5" href="#"
                                        title="等级 5"><span style="color: #0000ff; text-decoration: underline">[9]</span></a>&nbsp;</li>
                                </ul>
                            </div>
                            <div class="control">
                                <ul>
                                    <li class="original">
                                        <label>
                                            市场价:</label>
                                        <del>¥1999.00</del> </li>
                                    <li class="price">
                                        <label>
                                            新蛋价:</label><strong>¥1458.00</strong></li>
                                    <li>
                                        <div id="eggRe">
                                            <label style="float: left">
                                                评论:</label>
                                            <a class="rank5" href="#" title="等级 5">
                                                <span style="color: #0000ff; text-decoration: underline">[9]</span></a>
                                        </div>
                                    </li>
                                    <li class="btn"><a class="btnBuy button buttonB" href="#"
                                        title="购 买"><span style="color: #0000ff; text-decoration: underline">购 买</span></a>
                                        <a class="btnBook button buttonA" href="#"
                                            title="收 藏"><span style="color: #0000ff; text-decoration: underline">收 藏</span></a>
                                    </li>
                                </ul>
                            </div>
                        </dd></ItemTemplate>
                        </asp:DataList>怎么 在ItemDataBound 里替换掉这段 css
      

  4.   

    要替换class及style,首先要设置id以及runat-"server",
    这样就可以在后台重新进行设置了,如:重新设置你的
    <div class="detail">
    ...
    <span style="color: #0000ff">绝对性价比体现</span>1.首先设置id及runat-"server“;得到如下:
    <div id="div1" runat="server" class="detail">
    .....
    <span id="span1" runat="server" style="color: #0000ff">绝对性价比体现</span>2.在DataList的ItemDataBound事件中:
        protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            HtmlControl div1 = (HtmlControl)e.Item.FindControl("div1");
            div1.Attributes.Add("class", "detail2");//新的class        HtmlControl span1 = (HtmlControl)e.Item.FindControl("span1");
            span1.Attributes.Add("style", "color:#ff00ff");//新的style
        }
    HtmlControl若没引用先要引用一下:
    using System.Web.UI.HtmlControls;