Hi, I would like to persist the grid row order after the user reorder it.
I'm almost there, but i cant get the "updated" values from the grid. Whenever I access the e.DestinationGrid.Items or the grid.Items on the RowDrop event, the grid isnt updated yet, so i'm stuck with the old values.
ASPX:
c#
So, can someone help?
Thanks! And sorry for the english!
I'm almost there, but i cant get the "updated" values from the grid. Whenever I access the e.DestinationGrid.Items or the grid.Items on the RowDrop event, the grid isnt updated yet, so i'm stuck with the old values.
ASPX:
<div> <telerik:RadGrid ID="gridSubjects" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" Skin="Telerik" OnDeleteCommand="gridSubjects_DeleteCommand" OnNeedDataSource="gridSubjects_NeedDataSource" OnInsertCommand="gridSubjects_InsertCommand" OnUpdateCommand="gridSubjects_UpdateCommand" onrowdrop="gridSubjects_RowDrop"> <ClientSettings AllowRowsDragDrop="true" EnablePostBackOnRowClick="True"> <Selecting AllowRowSelect="True" EnableDragToSelectRows="false" /> </ClientSettings> <MasterTableView DataKeyNames="SubjectID,Sequence" InsertItemPageIndexAction="ShowItemOnCurrentPage" AutoGenerateColumns="false" CommandItemDisplay="Top" CommandItemSettings-AddNewRecordText="Adicionar" CommandItemSettings-RefreshText="Atualizar"> <CommandItemSettings AddNewRecordText="Adicionar" RefreshText="Atualizar" ExportToPdfText="Export to PDF"> </CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> </ExpandCollapseColumn> <Columns> <telerik:GridDragDropColumn Visible="true" /> <telerik:GridTemplateColumn DataField="SubjectID" HeaderText="ID" UniqueName="SubjectID" Visible="false" ReadOnly="true"> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Name" HeaderText="Nome" UniqueName="Name" /> <telerik:GridBoundColumn DataField="Description" HeaderText="Descrição" UniqueName="Description" /> <telerik:GridHyperLinkColumn DataNavigateUrlFields="SubjectID" DataNavigateUrlFormatString="~/TrainingsControl/Topics.aspx?SID={0}" DataTextField="TopicsCount" DataTextFormatString="Tópicos ({0})" UniqueName="TopicsCount" /> <telerik:GridHyperLinkColumn DataNavigateUrlFields="QuizID,SubjectID" DataNavigateUrlFormatString="~/TrainingsControl/QuizzesControl/Quiz.aspx?QID={0}&SID={1}" UniqueName="Quiz" DataTextField="QuestionsCount" DataTextFormatString="Questionário ({0})" /> <telerik:GridEditCommandColumn ButtonType="ImageButton" /> <telerik:GridButtonColumn ConfirmText="Deseja realmente deletar o módulo?" ConfirmDialogType="RadWindow" ConfirmTitle="Confirmação" ButtonType="ImageButton" CommandName="Delete" ConfirmDialogHeight="100px" ConfirmDialogWidth="220px" /> </Columns> <EditFormSettings> <EditColumn UniqueName="EditCommandColumn1" FilterControlAltText="Filter EditCommandColumn1 column"> </EditColumn> </EditFormSettings> </MasterTableView> <StatusBarSettings LoadingText="Carregando..." ReadyText="Pronto" /> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Telerik"> </HeaderContextMenu> </telerik:RadGrid></div>c#
protected void gridSubjects_RowDrop(object sender, GridDragDropEventArgs e){ Subject subject = new Subject(); Dictionary<int, short> order = new Dictionary<int, short>(); //I tried the alternative below too //foreach (GridDataItem item in gridSubjects.Items) foreach (GridDataItem item in e.DestinationGrid.Items) { int subID = Int32.Parse(item.GetDataKeyValue("SubjectID").ToString()); short subSeq = Int16.Parse(item.GetDataKeyValue("Sequence").ToString()); order.Add(subID, subSeq); } using (Pro10Entities db = new Pro10Entities()) { subject.Reorder(db, order); }}So, can someone help?
Thanks! And sorry for the english!