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.