2011-10-10 5 views
0

J'ai un datalistComment transférer un élément d'un datalist à un autre datalist?

<asp:DataList ID="dlstImage" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" 
           CellSpacing="8"> 
     <ItemTemplate> 
      <asp:ImageButton ID="Image" runat="server" ImageUrl='<%#"~/Controls/ShowImage.ashx?FileName=" +DataBinder.Eval(Container.DataItem, "FilePath") %>' 
             OnCommand="Select_Command" CommandArgument='<%# Eval("Id").ToString() +";"+Eval("FilePath")+";"+Eval("Index") %>' /><br /> 
      <asp:Label ID="lbl" runat="server" Text="Figure"></asp:Label><%# dlstImage.Items.Count + 1%> 
     </ItemTemplate> 
    </asp:DataList> 

où je lie l'image après le téléchargement par téléchargement uplodify, maintenant j'avoir un plus datalist et deux BTN et vers le bas,

<asp:ImageButton ID="ibtnMoveUp" runat="server" ImageUrl="~/App_Themes/Default/Images/moveup.bmp" 
         Style="height: 16px" ToolTip="MoveUp The Item" /> 
<asp:ImageButton ID="ibtnMoveDown" runat="server" ImageUrl="~/App_Themes/Default/Images/movedown.bmp" 
         ToolTip="MoveDown The Item" /> 

<asp:DataList ID="dlstSelectedImages" runat="server" RepeatDirection="Horizontal" 
           RepeatColumns="5" CellSpacing="8"> 
    <ItemTemplate> 
     <asp:ImageButton ID="Image" runat="server" /><br /> 
     <asp:Label ID="lbl" runat="server" Text="Figure"></asp:Label><%# dlstImage.Items.Count + 1%> 
    </ItemTemplate> 
</asp:DataList> 

Mes deux datalist est dans le même contrôle webuser, datalist1 et datalist2 et j'ai 2 btn de haut en bas, quand je sélectionne une image de datalist1 et que je clique sur down btn alors l'image sélectionnée devrait passer à datalist2. Comment faire ça? quelqu'un s'il vous plaît aidez-moi,

Répondre

0

J'utilise ce code et son travail bien pour moi.

ArrayList ImgArry = new ArrayList(); 
    path = objGetBaseCase.GetImages(TotImgIds); 
    ImgArry.Add(SelImgId); 
    ImgArry.Add(SelImgpath);//image name 
    ImgArry.Add(SelImgName);//image path 
    //path.Remove(ImgArry); 
    List<ArrayList> t = new List<ArrayList>(); 
    if (newpath.Count > 0) 
     t = newpath; 
    t.Add(ImgArry); 
    newpath = t; 
    for (int i = 0; i < newpath.Count; i++) 
    { 
     ArrayList alst = newpath[i]; 
     newtb.Rows.Add(Convert.ToInt32(alst[0]), alst[1].ToString(), alst[2].ToString(), i); 

    } 
    dlstSelectedImages.DataSource = newtb; 
    DataBind(); 

    path = objGetBaseCase.GetImages(TotImgIds); 
    for (int i = 0; i < path.Count; i++) 
    { 
     ArrayList alst = path[i]; 
     tb.Rows.Add(Convert.ToInt32(alst[0]), alst[1].ToString(), alst[2].ToString(), i); 

    } 
    dlstImage.DataSource = tb; 
    DataBind(); 
1

Vous devez gérer l'événement ItemCommand de un DataList dans lequel vous devez copier les données sélectionnées (image) dans un autre DataSource deuxDataList et de supprimer cet élément de la source de données de unDataList.

Markup:

<asp:DataList 
      ID="DataList1" 
      runat="server" 
      OnItemCommand="PerformMove" 
      > 
     <ItemTemplate> 
     <br /><%#Eval("Text") %> 
     <asp:Button ID="btn1" 
       runat="server" 
       Text="Move" 
       CommandName="cmd" 
       CommandArgument='<%#Eval("Text") %>' 
       /> 

     </ItemTemplate> 
</asp:DataList> 
<asp:DataList ID="DataList2" runat="server"> 
      <ItemTemplate> 
      <br /><%#Eval("Text") %> 
      </ItemTemplate> 
</asp:DataList> 

code-behind (.cs)

public class Data 
    { 
     public string Text { get; set; } 
     public override int GetHashCode() 
     { 
      return Text.GetHashCode(); 
     } 
     public override bool Equals(object obj) 
     { 
      return GetHashCode() == obj.GetHashCode(); 
     } 
    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      List<Data> list1 = new List<Data >() 
      { 
       new Data() { Text="One"}, 
       new Data() { Text="Two"}, 
       new Data() { Text="Three"}, 
      }; 
      List<Data> list2 = new List<Data>(); 
      Session["list1"] = list1; 
      Session["list2"] = list2; 

      DataList1.DataSource = Session["list1"]; 
      DataList1.DataBind(); 

      DataList2.DataSource = Session["list2"]; 
      DataList2.DataBind(); 
     } 
    } 
    protected void PerformMove(object source, DataListCommandEventArgs e) 
    { 
     if (e.CommandName == "cmd") 
     { 
      List<Data> list1 = Session["list1"] as List<Data>; 
      List<Data> list2 = Session["list2"] as List<Data>; 

      list1.Remove(new Data() { Text=e.CommandArgument.ToString() }); 
      list2.Add(new Data() { Text = e.CommandArgument.ToString() }); 
      DataList1.DataSource = Session["list1"]; 
      DataList1.DataBind(); 

      DataList2.DataSource = Session["list2"]; 
      DataList2.DataBind(); 
     } 
    } 
+0

va vous donner quelques s'il vous plaît exemple de code pour que .. – Rocky

+0

quelqu'un peut-il donner une autre avec le bouton d'image, mon Monter et BAS BTN est hors côté de datalist pas dans le côté du datalist. – Rocky

+0

Mes deux datalist sont dans le même contrôle webuser, datalist1 et datalist2 et j'ai 2 btn de haut en bas, quand je sélectionne une image de datalist1 et que je clique sur down btn, l'image sélectionnée devrait passer à datalist2. S'il vous plaît quelqu'un m'aider – Rocky