2011-10-12 5 views
1

나는 2 개의 데이터리스트와 2 개의 btn UP과 DOWN을 가지고 있는데, 하나의 데이터리스트에서 다른 데이터리스트로 선택한 이미지를 이동하려고합니다.datalist2로 이동 한 후 datalist1에서 이미지를 비활성화하는 방법은 무엇입니까?

Datalist1 :

<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")+";"+Eval("FileName") %>' /><br /> 
     <asp:Label ID="lbl" runat="server" Text="Figure"></asp:Label><%# dlstImage.Items.Count + 1%> 
    </ItemTemplate> 
    </asp:DataList> 

버튼 :

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

Datalist2 :

<asp:DataList ID="dlstSelectedImages" 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="ImageSelect_Command" CommandArgument='<%# Eval("Id").ToString() +";"+Eval("FilePath")+";"+Eval("Index")+";"+Eval("FileName") %>' /><br /> 
      <asp:Label ID="nlbl" runat="server" Text="Figure"></asp:Label><%# dlstSelectedImages.Items.Count + 1%> 
     </ItemTemplate> 
    </asp:DataList> 

버튼 다운 코드 :

 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(); 
,536,

datalist1에서 이미지를 선택하고 datalist2로 전송 중입니다. 하나의 데이터 목록에서 다른 데이터 목록으로 이미지를 이동할 수 있지만 원하는 이미지는 Datalist1 이미지를 움직일 때입니다. 이미지는 이미지를 움직이고 있습니다. datalist2로 이동 한 후 Datalist1에서 disable을 얻습니다. 어떻게하는지, datalist2로 이동 한 후 datalist1에서 이미지를 비활성화하는 방법.

답변

0
protected void dlstImage_ItemDataBound(object sender, DataListItemEventArgs e)// for disabling the image after moving 
    { 
     ImageButton imgctrl = (e.Item.FindControl("Image") as ImageButton); 
     string[] str = imgctrl.CommandArgument.ToString().Split(';'); 
     SelImgId = Convert.ToInt32(str[0]); 
     if (newpath.Exists(delegate(ArrayList imageDetails) { return Convert.ToInt32(imageDetails[0]) == SelImgId; })) 
     { 
      imgctrl.Enabled = false; 
      imgctrl.CssClass = "tdDisable"; 
     } 
     else 
     { 
      imgctrl.Enabled = true; 
      imgctrl.CssClass = ""; 
     } 
    } 
당신을 얻고 경우 잘 작동합니다

0
당신은 아마 나타나서이

DataList1.DataBind처럼 두 개의 분리 된 배열을로드 한 후입니다 적절한 시간에 데이터 바인딩() 메소드를,()를 호출 할 필요가

; DataList2.DataBind(); 내가 제대로

관련 문제