如题:如何改变datalist中显示的图片的顺序?或者有其他的什么办法?

解决方案 »

  1.   

    可能是我表达的不清楚。一般来说,从数据库里面读出的图片在datalist里显示是读出来的顺序排列的。比如:
    图1   图2  图3  图4  图5
    图6   图7  图8  图9  图10
    图11  图12 图13 图14 图15
    我的意思是可以改变 这些图片显示的位置。如:图1   图3  图2  图4  图5
    图6   图7  图8  图9  图10
    图11  图12 图13 图14 图15图二跟图三交换。
      

  2.   

    我们还是来假设吧
    假设你有一个datalist是一行五列分布的
    数据源是一个datatable,其中有一个字段是img,用于指定图片来源
    你现在的任务是换第二个和第三个图片链接
    1.可以直接修改datatable
    在绑定前string tmp=DataTable.Rows[2]["img"].ToString();
    DataTable.Rows[2]["img"]=DataTable.Rows[3]["img"].ToString();
    DataTable.Rows[3]["img"]=tmp;
    2.你可以在DataBind事件中处理
    if(e.itemIndex==2){
       DataList dl=sender as DataList;
       DataView dv=dl.DataSource as DataView;
       Image img=............//find it;
       Image.NavigateUrl =dv[3]["img"].ToString();
    }
    3.你也可以使用js来处理它,比如你绑定以后是这样的格式
    <table><tr><td><img src="1.gif"/></td><td><img src="2.gif"/></td><td><img src="3.gif"/></td><td><img src="4.gif"/></td>............你可以给你的 table取一个ID 比如名为Table1
    function  changetab(){
    var obj=document.getElementById("Table1");
    //第二个图象
    var img2=obj.childNodes[0].childNodes[0].childNodes[1].childNodes[0];
    //第三个图象
    var img3=obj.childNodes[0].childNodes[0].childNodes[2].childNodes[0];
    //交换
    var tmp=img2.src;
    img2.src=img3.src;
    img3.src=tmp;
    }