a simple way in the server side to get all items in the ListBox after they have been reorder by the user (either by the up down arrows or drag and d

2 posts, 0 answers
  1. Hagai
    Hagai avatar
    10 posts
    Member since:
    Jan 2012

    Posted 13 May Link to this post

    Hi,

     

    Is there a simple way in the server side  to get all items in the ListBox after they have been reorder by the user (either by the up down arrows or drag and drop)?

    I have a save button which when the user click on it i need to get the items in the ListBox so i can update the indexes of the items in my model.

    currently i tired that:

     

    001.
    //this is the clas model
     public class Publication : DataContractClass
    002.    {
    003.        public enum LanguageName
    004.        {
    005.            Hebrew,
    006.            English
    007.        }
    008.  
    009.        [DataMember]
    010.        private long id;
    011.        public long Id
    012.        {
    013.            get { return id; }
    014.            set { id = value; }
    015.        }
    016. 
    017.        [DataMember]
    018.        private LanguageName language;
    019.        public LanguageName Language
    020.        {
    021.            get { return language; }
    022.            set { language = value; }
    023.        }
    024. 
    025.        [DataMember]
    026.        private string text;
    027.        public string Text
    028.        {
    029.            get { return text; }
    030.            set { text = value; }
    031.        }
    032. 
    033.        [DataMember]
    034.        private int index;
    035.        public int Index
    036.        {
    037.            get { return index; }
    038.            set { index = value; }
    039.        }
    040. 
    041.        [DataMember]
    042.        private string link;
    043.        public string Link
    044.        {
    045.            get { return link; }
    046.            set { link = value; }
    047.        }
    048. 
    049.        [DataMember]
    050.        private long fileId;
    051.        public long FileId
    052.        {
    053.            get { return fileId; }
    054.            set { fileId = value; }
    055.        }
    056. 
    057.        [DataMember]
    058.        private byte[] publicationBlob;
    059.        public byte[] PublicationBlob
    060.        {
    061.            get { return publicationBlob;  }
    062.            set { publicationBlob = value; }
    063.        }
    064. 
    065.        [DataMember]
    066.        private bool isDeleted;
    067.        public bool IsDeleted
    068.        {
    069.            get { return isDeleted; }
    070.            set { isDeleted = value; }
    071.        }
    072. 
    073.        [DataMember]
    074.        private bool isSelected;
    075.        /// <summary>
    076.        /// Gets or sets a value indicating whether this publication is selected publication.
    077.        /// </summary>
    078.        /// <value>
    079.        ///     <c>true</c> if this publication is selected; otherwise, <c>false</c>.
    080.        /// </value>
    081.        public bool IsSelected
    082.        {
    083.            get { return isSelected; }
    084.            set { isSelected = value; }
    085.        }
    086. 
    087.        [DataMember]
    088.        private bool hasPublication;
    089.        public bool HasPublication
    090.        {
    091.            get { return hasPublication; }
    092.            set { hasPublication = value; }
    093.        }
    094.    }
    095.

    //this is my property in my webform

    096.static List<Publication> FacultyPublications
    097.        {
    098.            get
    099.            {
    100.                string sessionKey = $"FacultyPublications_{FacultyUserName}";
    101.                if (HttpContext.Current.Session[sessionKey] != null)
    102.                {
    103.                    return (List<Publication>)HttpContext.Current.Session[sessionKey];
    104.                }
    105.                else
    106.                {
    107.                    return null;
    108.                }
    109.            }
    110.            set
    111.            {
    112.                string sessionKey = $"FacultyPublications_{FacultyUserName}";
    113.                HttpContext.Current.Session[sessionKey] = value;
    114.            }
    115.        }
    116.//this is my save button event
    117.protected void RadButtonSavePublicationsOrder_Click(object sender, EventArgs e)
    118.        {
    119.            foreach (Publication pub in FacultyPublications)
    120.            {
    121.                pub.Index = RadListBoxPublications.FindItemIndexByValue(pub.Id.ToString());
    122.            }
    123.            XDocument document = new XDocument(new XElement("Root",
    124.                from pub in FacultyPublications
    125.                select
    126.                new XElement("Publication",
    127.                    new XElement("PublicationID", pub.Id),
    128.                    new XElement("SortIndex", pub.Index))
    129.                ));
    130. 
    131.            if (appDal.UpdatePublicationsIndexes(FacultyUserName, CurrentUserName, document.ToString()))
    132.            {
    133.                BindPublications();
    134.                RadWindowManagerPublications.RadAlert(GetLocalString("msgSuccessAction"), 600, 200, string.Empty, string.Empty);
    135.            }
    136.            else
    137.            {
    138.                //failed
    139.                RadWindowManagerPublications.RadAlert(GetLocalString("msgNotSuccessAction"), 600, 200, string.Empty, string.Empty);
    140.                return;
    141.            }
    142.        }
    143.    }

     

    and here is the radlistbox declaration

    01.<telerik:RadListBox ID="RadListBoxPublications" runat="server" AllowReorder="True" EnableDragAndDrop="True" Width="98%" Height="700px" AutoPostBackOnReorder="true">
    02.            <HeaderTemplate>
    03.                <div class="row">
    04.                    <div class="col-md-9">
    05.                        <h4>
    06.                            <asp:Literal runat="server" Text="<%$ Resources:FacultySites, PublicationsTitle%>"></asp:Literal>
    07.                        </h4>
    08.                    </div>                   
    09.                    <div class="col-md-2">
    10.                        <div class="row">
    11.                            <div class="col-md-5">
    12.                                <%--<asp:Literal runat="server" Text="<%$ Resources:FacultySites, Edit%>"></asp:Literal>--%>
    13.                                <telerik:RadButton ID="RadButtonAddNewPublication" runat="server" RenderMode="Lightweight" ToolTip="<%$ Resources:FacultySites, AddNewPublication%>" OnClick="RadButtonAddNewPublication_Click">
    14.                                    <ContentTemplate>
    15.                                        <span class="glyphicon glyphicon-edit"></span> <asp:Literal runat="server" Text="<%$ Resources:FacultySites, AddNewPublication%>"></asp:Literal>
    16.                                    </ContentTemplate>
    17.                                </telerik:RadButton>
    18.                            </div>                           
    19.                            <div class="col-md-7">
    20.                                                                 
    21.                                <telerik:RadButton ID="RadButtonSavePublicationsOrder" runat="server" RenderMode="Lightweight" ToolTip="<%$ Resources:FacultySites, SavePublicationsOrder%>" OnClick="RadButtonSavePublicationsOrder_Click">
    22.                                    <ContentTemplate>
    23.                                        <span class="glyphicon glyphicon-save"></span> <asp:Literal runat="server" Text="<%$ Resources:FacultySites, SavePublicationsOrder%>"></asp:Literal>
    24.                                    </ContentTemplate>
    25.                                </telerik:RadButton>                                                               
    26.                            </div>
    27.                        </div>
    28.                    </div>
    29.                    <div class="col-md-1"> </div>
    30.                </div>
    31.            </HeaderTemplate>
    32.            <ItemTemplate>
    33.                <div class="row">
    34.                    <div class="col-md-9">
    35.                        <div dir="<%# (DataBinder.GetDataItem(Container) as Idc.FacultySites.Models.Publication).Language == Idc.FacultySites.Models.Publication.LanguageName.Hebrew? "rtl" : "ltr" %>"
    36.                            class="<%# (DataBinder.GetDataItem(Container) as Idc.FacultySites.Models.Publication).Language == Idc.FacultySites.Models.Publication.LanguageName.Hebrew? "text-right-fix" : "text-left-fix" %>">
    37.                            <a id="PublicationLink" runat="server">
    38.                                <%# (DataBinder.GetDataItem(Container) as Idc.FacultySites.Models.Publication).Text %>
    39.                            </a>
    40.                        </div>
    41.                    </div>
    42.                    <div class="col-md-1"> </div>
    43.                    <div class="col-md-2">
    44.                        <div class="row">
    45.                            <div class="col-md-2">
    46.                                <telerik:RadButton ID="RadButtonEditPublication" runat="server" RenderMode="Lightweight" ToolTip="<%$ Resources:FacultySites, Edit%>" CommandArgument="<%# (DataBinder.GetDataItem(Container) as Idc.FacultySites.Models.Publication).Id %>" OnCommand="RadButtonEditPublication_Command">
    47.                                    <ContentTemplate>
    48.                                        <span class="glyphicon glyphicon-edit"></span>
    49.                                    </ContentTemplate>
    50.                                </telerik:RadButton>
    51.                            </div>
    52.                            <div class="col-md-2">
    53.                                <telerik:RadButton ID="RadButtonDeletePublication" runat="server" RenderMode="Lightweight" ToolTip="<%$ Resources:FacultySites, Delete%>" OnClick="RadButtonDeletePublication_Click" CommandArgument="<%# (DataBinder.GetDataItem(Container) as Idc.FacultySites.Models.Publication).Id %>" OnCommand="RadButtonDeletePublication_Command">
    54.                                    <ContentTemplate>
    55.                                        <span class="glyphicon glyphicon-remove"></span>
    56.                                    </ContentTemplate>
    57.                                    <ConfirmSettings ConfirmText="<%$ Resources:FacultySites, GeneralActionConfirmMessage%>" />
    58.                                </telerik:RadButton>
    59.                            </div>
    60.                            <div class="col-md-8"> </div>
    61.                        </div>
    62.                    </div>
    63.                </div>
    64.                <div class="row">
    65.                    <div class="col-md-12"> </div>
    66.                </div>
    67.            </ItemTemplate>
    68.        </telerik:RadListBox>

     

    but it's not working and I keep getting the ListBox items as they have been in the first time I load them from the db.

     

    Looking forward to an earliest reply and help

    Thanks.

  2. Peter Milchev
    Admin
    Peter Milchev avatar
    857 posts

    Posted 18 May Link to this post

    Hello Hagai,

    The OnReordered event has the information on the items that will be reordered and the Listbox has the items in the new order. Please check if that would fit your scenario:

    Regards,
    Peter Milchev
    Progress Telerik

    Progress is here for your business, like always. Read more about the measures we are taking to ensure business continuity and help fight the COVID-19 pandemic.
    Our thoughts here at Progress are with those affected by the outbreak.
Back to Top