Hi, i've a problem sorting a RadGrid
When i try to sort, rows data are sorted all except the last column "Allegati" that remains fixed. That column is compiled on the ItemDataBound event, based on the datatable. How can I correct this behavior? Radgrid is under Ajax. Thanks
<telerik:RadGrid ID="rgRichieste" runat="server" CellSpacing="-1" Culture="it-IT" GridLines="Both" AllowSorting="True" AutoGenerateColumns="False" PageSize="5" ShowStatusBar="True" AllowPaging="True" MasterTableView-NoMasterRecordsText="Nessun record da visualizzare." RenderMode="Lightweight" OnItemDataBound="rgRichieste_ItemDataBound" OnNeedDataSource="rgRichieste_NeedDataSource" FilterMenu-EnableScreenBoundaryDetection="True" Enabled="True"> <SortingSettings SortToolTip="Click qui per ordinare" SortedAscToolTip="ordinato crescente" SortedDescToolTip="ordinato decrescente"></SortingSettings> <ExportSettings FileName="richieste" IgnorePaging="True" ExportOnlyData="True" OpenInNewWindow="True"> <Pdf PageWidth="" AllowPrinting="False"></Pdf> </ExportSettings> <MasterTableView DataKeyNames="IDCompilazione"> <RowIndicatorColumn Visible="False"> </RowIndicatorColumn> <ExpandCollapseColumn Created="True"> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="IDModulo" HeaderText="ID" SortExpression="IDModulo" UniqueName="IDModulo" FilterControlAltText="Filter IDModulo column" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="IDCompilazione" HeaderText="ID" SortExpression="IDCompilazione" UniqueName="IDCompilazione" FilterControlAltText="Filter IDCompilazione column" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="NumeroDomanda" HeaderText="#" SortExpression="NumeroDomanda" UniqueName="NumeroDomanda" FilterControlAltText="Filter NumeroDomanda column" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Data" HeaderText="Data" SortExpression="Data" UniqueName="Data" DataType="System.DateTime" FilterControlAltText="Filter Data column" DataFormatString="{0:dd/MM/yyyy}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Nome" HeaderText="Nome" SortExpression="Nome" UniqueName="Nome" FilterControlAltText="Filter Nome column"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome" UniqueName="Cognome" FilterControlAltText="Filter Cognome column" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CodCorso" HeaderText="Codice CdS" SortExpression="CodCorso" UniqueName="CodCorso" FilterControlAltText="Filter CodCorso column" > </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Allegati" UniqueName="Allegati" > </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Azione" AllowFiltering="false" UniqueName="Azione" Visible="True"> <ItemTemplate> <telerik:RadButton ID="btnMerge" runat="server" CssClass="rbLeftMargin" Text="Unisce file" ButtonType="StandardButton" ToolTip="unisce i file allegati in un unico PDF" OnClick="btnMerge_Click" CommandArgument='<%# Eval("IDCompilazione").ToString()%>'> <ContentTemplate> <i class="fa fa-compress"></i> </ContentTemplate> </telerik:RadButton> <telerik:RadButton ID="btnDownloadFile" runat="server" CssClass="rbLeftMargin" Text="Scarica file" ButtonType="LinkButton" ToolTip="scarica PDF unico" CommandArgument='<%# Eval("IDCompilazione").ToString()%>' Target="_blank" UseSubmitBehavior="False" AutoPostBack="False"> <ContentTemplate> <i class="fa fa-file-pdf-o"></i> </ContentTemplate> </telerik:RadButton> <telerik:RadButton ID="btnModificaAllegati" runat="server" CssClass="rbLeftMargin" Text="Modifica allegati" ButtonType="LinkButton" ToolTip="modifica allegati" CommandArgument='<%# Eval("IDCompilazione").ToString()%>' Target="_blank" UseSubmitBehavior="False" AutoPostBack="False" OnClientClicked="ShowExistingW"> <ContentTemplate> <i class="fa fa-files-o"></i> </ContentTemplate> </telerik:RadButton> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView></telerik:RadGrid>
Here the code:
protected void rgRichieste_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ // salva i dati in memoria _dt = pc.GetDataTable(_query, connDb); // bind rgRichieste.DataSource = _dt;}protected void rgRichieste_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e){ int i = 0; string path = Master.targetFolder; if (e.Item is GridDataItem) // GridDataItem { GridDataItem item = (GridDataItem)e.Item; int id = (int)item.OwnerTableView.DataKeyValues[item.ItemIndex]["IDCompilazione"]; int indiceRiga = item.DataSetIndex; // link ai file allegati // IDCorsoDiStudio serve per puntare alla cartella corretta string idCdS = _dt.Rows[indiceRiga]["IDCorsoDiStudio"].ToString(); // imposta lista campi in funzione del modulo string listaCampi = ""; int idModulo = Convert.ToInt32(_dt.Rows[indiceRiga]["IDModulo"].ToString()); if (idModulo == 1) listaCampi = ProcComuni.listaCampiNome[0]; //"FileCurriculumVitae,FileBachelorDegree,FilePersonalStatement"; else listaCampi = ProcComuni.listaCampiNome[1]; // "FileDeclarationForm,FileCurriculumVitae,FileResidenceCertificate,FileUniversityDegree,FileAcademicRecord,FileEnglishProficiency,FileIdentityDocument,FileMotivationLetter,FileReferenceLetter1,FileReferenceLetter2,FileOther"; string[] hlFields = listaCampi.Split(new Char[] { ',' }); int nFields = hlFields.Count<string>(); // per ogni campo crea il link int nCampi = 0; foreach (string hlField in hlFields) { nCampi++; string nomeCampo = hlField.Trim(); // questo valore potrebbe essere a sua volta una lista separata da '|' string valoreCampo = _dt.Rows[indiceRiga][nomeCampo].ToString(); if (valoreCampo != "") { string[] nomiSingoli = valoreCampo.Split(new Char[] { '|' }); int nNomi = 0; foreach (string nomeSingolo in nomiSingoli) { nNomi++; string nome = nomeSingolo.Trim(); HyperLink lnkFile = new HyperLink(); lnkFile.Text = nome; lnkFile.NavigateUrl = path + idCdS + "/" + lnkFile.Text; lnkFile.Target = "_blank"; if (nNomi > 1) item["Allegati"].Controls.Add(new LiteralControl(" | ")); item["Allegati"].Controls.Add(lnkFile); } if (nCampi < nFields) item["Allegati"].Controls.Add(new LiteralControl("<br />")); } } // imposta i pulsanti per la gestione del pdf unico string fileUnito = _dt.Rows[indiceRiga]["FileUnito"].ToString(); RadButton rbMerge = (RadButton)item["Azione"].FindControl("btnMerge"); RadButton rbDownloadFile = (RadButton)item["Azione"].FindControl("btnDownloadFile"); if (idModulo < 2) { rbMerge.Visible = false; rbDownloadFile.Visible = false; } else { // modulo 2,3: gestione abilitata switch (fileUnito) { case "": rbDownloadFile.Visible = false; break; case "ERRORE": rbDownloadFile.Visible = false; rbMerge.BackColor = System.Drawing.Color.Bisque; rbMerge.ToolTip = "Ci sono stati problemi nell'ultimo tentativo di unione."; break; default: rbMerge.Visible = false; rbDownloadFile.NavigateUrl = path + idCdS + "/" + fileUnito; break; } } }}
