C# 如何在移动到datalist2后禁用datalist1中的映像?

C# 如何在移动到datalist2后禁用datalist1中的映像?,c#,asp.net,datalist,C#,Asp.net,Datalist,我有2个数据列表和2个btn向上和向下,我正在尝试将所选图像从一个数据列表移动到另一个数据列表 数据列表1: <asp:DataList ID="dlstImage" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" CellSpacing="8" > <ItemTemplate> <asp:Imag

我有2个数据列表和2个btn向上和向下,我正在尝试将所选图像从一个数据列表移动到另一个数据列表

数据列表1:

  <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" />

数据列表2:

   <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();
ArrayList ImgArry=new ArrayList();
path=objGetBaseCase.GetImages(TotImgIds);
ImgArry.Add(SelImgId);
ImgArry.Add(SelImgpath)//图像名称
ImgArry.Add(SelImgName)//图像路径
//移除路径(ImgArry);
列表t=新列表();
如果(newpath.Count>0)
t=新路径;
t、 添加(ImgArry);
newpath=t;
for(int i=0;i

我正在从datalist1选择一个图像并传输到datalist2,我能够将图像从一个datalist移动到另一个datalist,但我想要的是当我移动图像时,然后是datalist1图像,我移动该图像的任何图像在移动到datalist2后在datalist1中被禁用,如何操作,如何在移动到datalist2后禁用datalist1中的映像。

您可能需要在适当的时间调用DataBind()方法,这是在加载两个单独的数组之后

DataList1.DataBind(); DataList2.DataBind()

如果我没弄错的话,那就行了

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 = "";
        }
    }