Hi, i'm trying to use RadGrid for a master/detail grid with declarative binding, but when i try to expand a level i obtain only empty detailsviews.
I set ServerOnDemand mode. This is the code.
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="ElencoGruppi.aspx.cs" Inherits="Stats.Secure.ElencoGruppi" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> <div class="row" id="er_head"> <div class="col-md-12"> <h2>Gestione gruppi</h2> </div> </div> <telerik:RadGrid ID="rgGruppi" runat="server" DataSourceID="sdsGruppi" AllowSorting="True" AlternatingItemStyle-BackColor="#fff7e9" AutoGenerateColumns="False" RenderMode="Lightweight" Skin="Silk" Culture="it-IT"> <GroupingSettings CollapseAllTooltip="Collapse all groups"></GroupingSettings> <ExportSettings> <Pdf PageWidth=""> </Pdf> </ExportSettings> <AlternatingItemStyle BackColor="#FFF7E9"></AlternatingItemStyle> <MasterTableView EnableHierarchyExpandAll="true" DataSourceID="sdsGruppi" DataKeyNames="IDGruppo" HierarchyLoadMode="Client" NoDetailRecordsText="Nessun dato di dettaglio trovato" NoMasterRecordsText="Nessun dato trovato"> <DetailTables> <telerik:GridTableView EnableHierarchyExpandAll="true" DataKeyNames="IDReport" DataSourceID="sdsReport" Width="100%" runat="server"> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="IDGruppo" MasterKeyField="IDGruppo"></telerik:GridRelationFields> </ParentTableRelation> <Columns> <telerik:GridBoundColumn DataField="IDReport" HeaderText="ID" UniqueName="IDReport" DataType="System.Int32"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Titolo" HeaderText="Titolo" UniqueName="Titolo"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="IDTipoReport" HeaderText="Tipo" UniqueName="IDTipoReport"> </telerik:GridBoundColumn> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridBoundColumn DataField="IDGruppo" HeaderText="ID" UniqueName="IDGruppo" DataType="System.Int32"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Gruppo" HeaderText="Gruppo" UniqueName="Gruppo"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Descrizione" HeaderText="Descrizione" UniqueName="Descrizione"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="Pubblicato" HeaderText="Pubblicato" UniqueName="Pubblicato" DataType="System.Boolean"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="Ordine" HeaderText="Ordine" UniqueName="Ordine" DataType="System.Int32"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="NumeroClick" HeaderText="Click" UniqueName="NumeroClick" DataType="System.Int32"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Url" HeaderText="Url" UniqueName="Url"> </telerik:GridBoundColumn> </Columns> </MasterTableView> <FilterMenu RenderMode="Lightweight"></FilterMenu> <HeaderContextMenu RenderMode="Lightweight"></HeaderContextMenu> </telerik:RadGrid> <asp:SqlDataSource ID="sdsGruppi" runat="server" ConnectionString="" SelectCommand="SELECT g.IDGruppo, g.Gruppo, g.Descrizione, g.Pubblicato, g.Ordine, g.NumeroClick, g.Url FROM Gruppi AS g ORDER BY g.Ordine"> </asp:SqlDataSource> <asp:SqlDataSource ID="sdsReport" runat="server" ConnectionString="" SelectCommand="SELECT gr.IDGruppo, r.IDReport, r.Titolo, r.IDTipoReport, r.Pubblicato, r.NumeroVisite, gr.Ordine FROM Report AS r INNER JOIN GruppiReport AS gr ON gr.IDReport = r.IDReport WHERE gr.IDGruppo = @IDGruppo"> <SelectParameters> <asp:Parameter Type="Int32" Name="IDGruppo" /><asp:Parameter /> </SelectParameters> </asp:SqlDataSource></asp:Content>
ConnectionString(s) are setted on the Init step:
namespace Stats.Secure{ public partial class ElencoGruppi : System.Web.UI.Page { string connDb; protected void Page_Init(object sender, EventArgs e) { // permesso solo per operatore if (Session["AuthIDRuolo"] != null && (int)Session["AuthIDRuolo"] >= 3) { } else Response.Redirect("Login.aspx?LOGOUT=1"); // carica la stringa di connessione if (ConfigurationManager.AppSettings["appModoTest"] == "true") connDb = ConfigurationManager.ConnectionStrings["Stats.Test"].ConnectionString; else connDb = ConfigurationManager.ConnectionStrings["Stats"].ConnectionString; sdsGruppi.ConnectionString = connDb; sdsReport.ConnectionString = connDb; } protected void Page_Load(object sender, EventArgs e) { } }}
Thank you for advices.