I have an aspx page with a Grid. Each row on grid is identified by an id (idAzienda).
Each row on grid has also a column with a radComboBox (RepartoRadComboBox). I want this radComboBox to have a datasource (ObjectDataSourceRepartiAzienda) dependent on row parameter idAzienda.
How can I set this "dynamical" datasource?
My grid is:
DataSources are:
Code for business object reparto is:
Each row on grid has also a column with a radComboBox (RepartoRadComboBox). I want this radComboBox to have a datasource (ObjectDataSourceRepartiAzienda) dependent on row parameter idAzienda.
How can I set this "dynamical" datasource?
My grid is:
<telerik:RadGrid ID="RadGridAziendeForUser" runat="server" DataSourceID="ObjectDataSourceAziendeUtente" EnableEmbeddedSkins="False" GridLines="None" Skin="MachinaWeb" AllowAutomaticUpdates="True" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowMultiRowSelection="True" OnItemCommand="RadGridAziendeForUser_ItemCommand" OnItemDataBound="RadGridAziendeForUser_ItemDataBound" AllowPaging="True" PageSize="5"> <ClientSettings EnablePostBackOnRowClick="True" Resizing-AllowColumnResize="false"> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView AutoGenerateColumns="False" DataSourceID="ObjectDataSourceAziendeUtente" EditMode="InPlace" CommandItemDisplay="Top" DataKeyNames="IdUtente,IdAzienda,TimeStamp"> <CommandItemTemplate> <div style="text-align: center; width: 95%; float: left;"> <asp:Label ID="LabelAziendeForUserTxt" runat="server" Text='<%$ Resources:Resource, AziendePerUtente_M %>'></asp:Label></div> <div style="float: right; width: 5%; text-align: right;"> <asp:ImageButton ID="NewAziendaButton" runat="server" CausesValidation="False" CommandName="InitInsert" ImageUrl="~/Images/AddRecord.png" Text="<%$ Resources:Resource, Inserisci %>" /> </div> </CommandItemTemplate> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" CancelImageUrl="~/Images/ImagesGrid/Cancel.gif" EditImageUrl="~/Images/ImagesGrid/Edit.gif" UpdateImageUrl="~/Images/ImagesGrid/Update.gif" InsertImageUrl="~/Images/ImagesGrid/Update.gif" UniqueName="EditCommandColumn" ItemStyle-Width="40px"> <ItemStyle Width="40px" /> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="IdUtente" DataType="System.Int64" HeaderText="IdUtente" ReadOnly="True" SortExpression="IdUtente" UniqueName="IdUtente" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="IdUtenteAsp" HeaderText="IdUtenteAsp" SortExpression="IdUtenteAsp" UniqueName="IdUtenteAsp" DataType="System.Guid" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="UserName" HeaderText="UserName" ReadOnly="True" SortExpression="UserName" UniqueName="UserName" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="IdCultura" DataType="System.Int64" HeaderText="IdCultura" ReadOnly="True" SortExpression="IdCultura" UniqueName="IdCultura" Visible="false"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn> <HeaderTemplate> <asp:Label ID="Label46" runat="server" Text='<%$ Resources:Resource, Azienda %>' Width="130px"></asp:Label></HeaderTemplate> <EditItemTemplate> <telerik:RadComboBox ID="AziendaRadComboBox" runat="server" DataSourceID="ObjectDataSourceAzienda" DataTextField="NomeAzienda" DataValueField="IdAzienda" SelectedValue='<%# Bind("IdAzienda") %>' Width="120px" Enabled="false" /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label47" runat="server" Width="120px" Text='<%# Bind("Azienda") %>'></asp:Label></ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <HeaderTemplate> <asp:Label ID="Label48" runat="server" Text='<%$ Resources:Resource, Cultura %>' Width="80px"></asp:Label></HeaderTemplate> <EditItemTemplate> <telerik:RadComboBox ID="CulturaRadComboBox" runat="server" DataSourceID="ObjectDataSourceCultura" DataTextField="Cultura" DataValueField="IdCultura" SelectedValue='<%# Bind("IdCultura") %>' Width="70px" AppendDataBoundItems="true" /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label50" runat="server" Width="70px" Text='<%# Bind("Cultura") %>'></asp:Label></ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <HeaderTemplate> <asp:Label ID="Label49" runat="server" Text='<%$ Resources:Resource, Gruppo %>' Width="130px"></asp:Label></HeaderTemplate> <EditItemTemplate> <telerik:RadComboBox ID="GruppoRadComboBox" runat="server" DataSourceID="ObjectDataSourceGruppoUtente" DataTextField="Nome" DataValueField="IdGruppoUtente" SelectedValue='<%# Bind("IdGruppo") %>' Width="120px" AppendDataBoundItems="true" /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label51" runat="server" Text='<%# Bind("Gruppo") %>' Width="120px"></asp:Label></ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <HeaderTemplate> <asp:Label ID="Label52" runat="server" Text='<%$ Resources:Resource, Stabilimento %>' Width="130px"></asp:Label></HeaderTemplate> <EditItemTemplate> <telerik:RadComboBox ID="StabilimentoRadComboBox" runat="server" DataSourceID="ObjectDataSourceRepartiAzienda" DataTextField="IdReparto" DataValueField="IdAzienda" Width="120px" AppendDataBoundItems="True" /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label53" runat="server" Text='<%# Bind("Stabilimento") %>' Width="120px"></asp:Label></ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="RepartoRadComboBoxTC"> <HeaderTemplate> <asp:Label ID="Label54" runat="server" Text='<%$ Resources:Resource, Reparto %>' Width="130px"></asp:Label></HeaderTemplate> <EditItemTemplate> <telerik:RadComboBox ID="RepartoRadComboBox" runat="server" Width="120px" AppendDataBoundItems="true" /> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label55" runat="server" Text='<%# Bind("Settore") %>' Width="120px"></asp:Label></ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridButtonColumn CommandName="Delete" ImageUrl="~/Images/ImagesGrid/Delete.gif" UniqueName="DeleteColumn" ConfirmText="Do you really want to delete the selected row?" ButtonType="ImageButton" /> </Columns> <EditFormSettings> <EditColumn> </EditColumn> </EditFormSettings> </MasterTableView><FilterMenu EnableEmbeddedSkins="False"> </FilterMenu> <HeaderContextMenu EnableEmbeddedSkins="False"> </HeaderContextMenu> </telerik:RadGrid>DataSources are:
<asp:ObjectDataSource ID="ObjectDataSourceRepartiAzienda" runat="server" SelectMethod="getAllByAzienda" TypeName="MachinaWeb.Services.BO_Reparto"> <SelectParameters> <asp:Parameter Name="idAzienda" Type="Int64" /> </SelectParameters> </asp:ObjectDataSource> <asp:ObjectDataSource ID="ObjectDataSourceAziendeUtente" runat="server" DataObjectTypeName="MachinaWeb.Services.BO_Utente" DeleteMethod="deleteAziendaUtente" EnablePaging="True" InsertMethod="insertAziendaUtente" SelectMethod="getUtentiFromIdUtenteAsp" TypeName="MachinaWeb.Services.BO_Utente" UpdateMethod="updateAziendaUtente" MaximumRowsParameterName="maxRows" StartRowIndexParameterName="startRows" SelectCountMethod="GetUtentiCount" OnUpdated="ObjectDataSourceAziendeUtente_Updated"> <SelectParameters> <asp:ControlParameter ControlID="HiddenFieldGuidUtenteAspSelezionatoOnRadGridAspnetUsers" DbType="Guid" Name="idUtenteAsp" PropertyName="Value" /> <asp:ControlParameter ControlID="HiddenFieldIdCultura" Name="idCultura" PropertyName="Value" Type="Int64" /> </SelectParameters> </asp:ObjectDataSource>Code for business object reparto is:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using DatiMachinaWebEntityFramework;using System.Data.Objects;namespace MachinaWeb.Services{ public class BO_Reparto { public long IdReparto { get; set; } public string CodReparto { get; set; } public string Reparto { get; set; } public long IdStabilimento { get; set; } public string CodStabilimento { get; set; } public string Stabilimento { get; set; } public long IdAzienda { get; set; } public string codice_reparto_aux { get; set; } public string Denominazione { get; set; } public long IdResponsabile { get; set; } public string Telefono { get; set; } public long IdCdc { get; set; } public long IdTurno { get; set; } public Int16? RepartiPosizione { get; set; } public Boolean EscludeDomenica { get; set; } public Boolean EscludeSabato { get; set; } public Boolean EscludeFestivi { get; set; } public long IdCitta { get; set; } public long IdVia { get; set; } public string Indirizzo { get; set; } public String NCivico { get; set; } public string Interno { get; set; } public string Telefono2 { get; set; } public string Fax { get; set; } public string Internet { get; set; } public string Email { get; set; } public long? IdCommessa { get; set; } public long IdUtente { get; set; } public DateTime DataCreazione { get; set; } public DateTime DataAggiornamento { get; set; } public string Note_memo { get; set; } public long IdSicurezza { get; set; } public DateTime? DataDismissione { get; set; } public byte[] TimeStamp { get; set; } public BO_Reparto() { IdReparto = -1; CodReparto = String.Empty; Reparto = String.Empty; } public BO_Reparto(Reparti_Get_ByIdAzienda_Result repSp) { IdReparto = repSp.IdReparto; Reparto = repSp.Reparto; CodReparto = repSp.CodReparto; IdStabilimento = repSp.IdStabilimento; CodStabilimento = repSp.CodStabilimento; Stabilimento = repSp.Denominazione; } public List<BO_Reparto> getAllByAzienda(long idAzienda) { List<BO_Reparto> lista = new List<BO_Reparto>(); using (DatiMachinaWeb_BeniPianiInterventiEntities context = new DatiMachinaWeb_BeniPianiInterventiEntities()) { IEnumerable<Reparti_Get_ByIdAzienda_Result> repartiSp = context.Reparti_Get_ByIdAzienda(idAzienda); foreach (Reparti_Get_ByIdAzienda_Result repSp in repartiSp) { lista.Add(new BO_Reparto(repSp)); } } return lista; } public List<BO_Reparto> getAllByAzienda(long idAzienda, long maxRows, long startRows) { List<BO_Reparto> lista = new List<BO_Reparto>(); using (DatiMachinaWeb_BeniPianiInterventiEntities context = new DatiMachinaWeb_BeniPianiInterventiEntities()) { IEnumerable<Reparti_Get_ByIdAzienda_Result> repartiSp = context.Reparti_Get_ByIdAzienda(idAzienda).Skip((int)startRows).Take((int)maxRows); foreach (Reparti_Get_ByIdAzienda_Result repSp in repartiSp) { lista.Add(new BO_Reparto(repSp)); } } return lista; } public List<BO_Reparto> getRepartiExample() { List<BO_Reparto> lista = new List<BO_Reparto>(); long idAzienda = 1; using (DatiMachinaWeb_BeniPianiInterventiEntities context = new DatiMachinaWeb_BeniPianiInterventiEntities()) { IEnumerable<Reparti_Get_ByIdAzienda_Result> repartiSp = context.Reparti_Get_ByIdAzienda(idAzienda).Take(5); foreach (Reparti_Get_ByIdAzienda_Result repSp in repartiSp) { lista.Add(new BO_Reparto(repSp)); } } return lista; } public int GetRepartiCount(long idAzienda) { using (DatiMachinaWeb_BeniPianiInterventiEntities context = new DatiMachinaWeb_BeniPianiInterventiEntities()) { int repartiCount = (from r in context.Reparti_cli_for where r.IdAzienda== idAzienda select r.IdReparto ).Count(); return repartiCount; } } public BO_Reparto(Reparto_GetByIdReparto_Result getRepartoByIdRepartoResult, long IdReparto) { using (DatiMachinaWeb_AccessoEntities context = new DatiMachinaWeb_AccessoEntities()) { IdUtente = getRepartoByIdRepartoResult.IdUtente; IdAzienda = getRepartoByIdRepartoResult.IdAzienda; IdStabilimento = getRepartoByIdRepartoResult.IdStabilimento; CodReparto = getRepartoByIdRepartoResult.CodReparto; codice_reparto_aux = getRepartoByIdRepartoResult.codice_reparto_aux; IdReparto = getRepartoByIdRepartoResult.IdReparto; Denominazione = getRepartoByIdRepartoResult.Denominazione ; IdResponsabile = getRepartoByIdRepartoResult.IdResponsabile; IdVia = getRepartoByIdRepartoResult.IdVia; IdCitta = getRepartoByIdRepartoResult.IdCitta; Indirizzo = getRepartoByIdRepartoResult.Indirizzo; NCivico=getRepartoByIdRepartoResult.NCivico; Interno=getRepartoByIdRepartoResult.Interno; IdCdc = getRepartoByIdRepartoResult.IdCdc; IdTurno = getRepartoByIdRepartoResult.IdTurno; RepartiPosizione = getRepartoByIdRepartoResult.RepartiPosizione; EscludeDomenica = getRepartoByIdRepartoResult.EscludeDomenica; EscludeSabato = getRepartoByIdRepartoResult.EscludeSabato; EscludeFestivi = getRepartoByIdRepartoResult.EscludeFestivi; Telefono = getRepartoByIdRepartoResult.Telefono; Telefono2 = getRepartoByIdRepartoResult.Telefono2; Fax = getRepartoByIdRepartoResult.Fax; IdCommessa = getRepartoByIdRepartoResult.IdCommessa; DataCreazione = getRepartoByIdRepartoResult.DataCreazione; DataAggiornamento = getRepartoByIdRepartoResult.DataAggiornamento; Email = getRepartoByIdRepartoResult.Email; Internet = getRepartoByIdRepartoResult.Internet; Note_memo = getRepartoByIdRepartoResult.Note_memo; IdSicurezza = getRepartoByIdRepartoResult.IdSicurezza; DataDismissione = getRepartoByIdRepartoResult.DataDismissione; TimeStamp = getRepartoByIdRepartoResult.TimeStamp; } } public BO_Reparto getRepartoByIdReparto(long IdReparto) { using (DatiMachinaWeb_BeniPianiInterventiEntities context = new DatiMachinaWeb_BeniPianiInterventiEntities()) { Reparto_GetByIdReparto_Result repartosp = context.Reparto_GetByIdReparto(IdReparto).FirstOrDefault(); return new BO_Reparto(repartosp,IdReparto ); } } } //public BO_Utente getUtenteFromIdUtente(long idUtente, long idCultura) // { // using (DatiMachinaWeb_AccessoEntities context = new DatiMachinaWeb_AccessoEntities()) // { // GetUtenteFromIdUtente_Result utenteSp = context.GetUtenteFromIdUtente(idUtente).FirstOrDefault(); // return new BO_Utente(utenteSp, idCultura); // } // }}