This is a migrated thread and some comments may be shown as answers.

Maestro/ Detalle (Insertar datos de la union de tres tablas ))

2 Answers 435 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Hugo
Top achievements
Rank 1
Hugo asked on 06 Apr 2011, 11:29 PM
Hola a todos,

He estado en esto por dos días, pero parece que no puede conseguir que funcione solo una parte jejejejejeje.

Tengo tres Tablas, Tema, Conocimiento y ConocimientoEmpleado de la que el Conocimiento tiene una relación ForeignKey a Tema
y ConocimientoEmpleado tiene una relación ForeignKey a Conocimiento . Lo que quiero lograr es que el mastertableview 
se rellena con los datos de la relacion entre Tema y Conocimiento y cada registro tiene detailtables referencia a sí misma con
los datos de Conocimiento. Pero esto si me funciona, pero ahora quiero q me aparezca otro DetailTableView
con la referencia de los datos de ConocimientoEmpleado. Lo me dice q el IdTema no tiene relacion o q no es un datacolumn, lo que tengo es lo siguiente:

ASPX
 protected void BuscarTablaTema(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            if (!e.IsFromDetailTable)
            {
                RadGrid1.DataSource = ObtenerDatosTabla("SELECT * FROM Tema");
                RadGrid1.MasterTableView.DataKeyNames = new string[] { "IdConocimiento" };  
            }
        }


        protected void BuscarTablaConocimiento(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
        {
            GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
            switch (e.DetailTableView.Name)
            {
                case 1:
                    {
                        string IdConocimiento = dataItem.GetDataKeyValue("IdConocimiento ").ToString();
                        e.DetailTableView.DataSource = GetDataTable("SELECT * FROM Conocimiento WHERE IdConocimiento = '" + IdConocimiento + "'");
                        break;
                    }


                case 2:
                    {
                        string IdTema= dataItem.GetDataKeyValue("IdTema").ToString();
                        e.DetailTableView.DataSource = GetDataTable("SELECT * FROM ConocimientoEmpleado WHERE IdTema = '" + IdTema +"'");
                        break;
                    }
            }
        }
        
        public DataTable ObtenerDatosTabla(string ConsultarTabla)
{
            String ConnString = ConfigurationManager.ConnectionStrings["IgrupoLogosConnectionString"].ConnectionString;
SqlConnection ConexionTabla = new SqlConnection(ConnString);
            SqlDataAdapter Adaptador = new SqlDataAdapter();
            Adaptador.SelectCommand = new SqlCommand(ConsultarTabla, ConexionTabla);
 
DataTable DatosTabla = new DataTable();


ConexionTabla.Open();
try
{
                Adaptador.Fill(DatosTabla);
}
finally
{
ConexionTabla.Close();
}


return DatosTabla;
}
    }
}


ASPX.CS

<MasterTableView Width="100%"  AllowMultiColumnSorting="True">
                <DetailTables>
                    <telerik:GridTableView DataKeyNames="IdConocimiento" Name="Conocimiento" Width="100%">
                        <DetailTables>
                            <telerik:GridTableView DataKeyNames="IdTema" Name="Tema" Width="100%">
                                <Columns>
   <telerik:GridBoundColumn SortExpression="IdEmpleado" HeaderText="IdEmpleado" HeaderButtonType="TextButton"
                                        DataField="IdEmpleado" DataType="System.Int32" Visible="false">
                                    </telerik:GridBoundColumn>                                    
  <telerik:GridBoundColumn SortExpression="IdTema" HeaderText="IdTema" HeaderButtonType="TextButton"
                                        DataField="IdTema" DataType="System.Int32" >
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="Nivel0" HeaderText="Nivel0" HeaderButtonType="TextButton"
                                        DataField="Nivel0">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="Nivel1" HeaderText="Nivel1" HeaderButtonType="TextButton"
                                        DataField="Nivel1">
                                    </telerik:GridBoundColumn>
   <telerik:GridBoundColumn SortExpression="Nivel2" HeaderText="Nivel2" HeaderButtonType="TextButton"
                                        DataField="Nivel2">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="Nivel3" HeaderText="Nivel3" HeaderButtonType="TextButton"
                                        DataField="Nivel3">
                                    </telerik:GridBoundColumn>
      <telerik:GridBoundColumn SortExpression="Nivel4" HeaderText="Nivel4" HeaderButtonType="TextButton"
                                        DataField="Nivel4">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="Experiencia" HeaderText="Experiencia" HeaderButtonType="TextButton"
                                        DataField="Experiencia">
                                    </telerik:GridBoundColumn>
                                </Columns>
                            </telerik:GridTableView>
                        <DetailTables>
                    <telerik:GridTableView DataKeyNames="IdConocimiento" Width="100%">
                        <Columns>
                        <telerik:GridBoundColumn SortExpression="IdTema" HeaderText="IdTema" HeaderButtonType="TextButton"
                                DataField="IdTema" DataType="System.Int32" >
                                </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn SortExpression="IdConocimiento" HeaderText="IdConocimiento" HeaderButtonType="TextButton"
                                DataField="IdConocimiento" DataType="System.Int32" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn SortExpression="IdTema" HeaderText="IdTema" HeaderButtonType="TextButton"
                                DataField="IdTema" UniqueName="IdTema" DataType="System.Int32" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn SortExpression="Descripcion" HeaderText="SubTema" HeaderButtonType="TextButton"
                                DataField="Descripcion" UniqueName="Descripcion">
                            </telerik:GridBoundColumn>
                        </Columns>                       
                    </telerik:GridTableView>
                </DetailTables>
                <Columns>
                <telerik:GridBoundColumn SortExpression="" HeaderText="IdConocimiento " HeaderButtonType="TextButton"
                    DataField="IdConocimiento" DataType="System.Int32" ReadOnly="true" Visible="false">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn SortExpression="Valor" HeaderText="Tema" HeaderButtonType="TextButton"
                    DataField="Valor">
                </telerik:GridBoundColumn>                                   
            </Columns>
            </MasterTableView>

2 Answers, 1 is accepted

Sort by
0
Bruno
Top achievements
Rank 2
answered on 07 Apr 2011, 10:30 PM
Lo siento, no hablo español. Por favor tome ventaja de los servicios de Google Translate para traducir su pregunta el idioma Inglés. Gracias.
0
Hugo
Top achievements
Rank 1
answered on 07 Apr 2011, 11:47 PM
Hi everyone,


The State in Por Esto two days, but does not seem to get to work A solo parte jejejejejeje.


I have three tables, theme, Knowledge and ConocimientoEmpleado of which knowledge has a ForeignKey a Topic List
and ConocimientoEmpleado HAVE A ForeignKey a Knowledge Value. What I want to do this is for mastertableview
yes populated with the data of the Relationship Between Subject and Knowledge and Registration Each detailtables Reference HAVE A SI With Herself
Knowledge Data. But this much I worked before but now I want to be displayed another DetailTableView q
With Reference Data ConocimientoEmpleado. What gave me the assetid unrelated q oq HAVE DataColumn is not, is what I have:

ASPX
 protected void BuscarTablaTema(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            if (!e.IsFromDetailTable)
            {
                RadGrid1.DataSource = ObtenerDatosTabla("SELECT * FROM Tema");
                RadGrid1.MasterTableView.DataKeyNames = new string[] { "IdConocimiento" };  
            }
        }


        protected void BuscarTablaConocimiento(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
        {
            GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
            switch (e.DetailTableView.Name)
            {
                case 1:
                    {
                        string IdConocimiento = dataItem.GetDataKeyValue("IdConocimiento ").ToString();
                        e.DetailTableView.DataSource = GetDataTable("SELECT * FROM Conocimiento WHERE IdConocimiento = '" + IdConocimiento + "'");
                        break;
                    }


                case 2:
                    {
                        string IdTema= dataItem.GetDataKeyValue("IdTema").ToString();
                        e.DetailTableView.DataSource = GetDataTable("SELECT * FROM ConocimientoEmpleado WHERE IdTema = '" + IdTema +"'");
                        break;
                    }
            }
        }
        
        public DataTable ObtenerDatosTabla(string ConsultarTabla)
{
            String ConnString = ConfigurationManager.ConnectionStrings["IgrupoLogosConnectionString"].ConnectionString;
SqlConnection ConexionTabla = new SqlConnection(ConnString);
            SqlDataAdapter Adaptador = new SqlDataAdapter();
            Adaptador.SelectCommand = new SqlCommand(ConsultarTabla, ConexionTabla);
 
DataTable DatosTabla = new DataTable();


ConexionTabla.Open();
try
{
                Adaptador.Fill(DatosTabla);
}
finally
{
ConexionTabla.Close();
}


return DatosTabla;
}
    }
}


ASPX.CS

<MasterTableView Width="100%"  AllowMultiColumnSorting="True">
                <DetailTables>
                    <telerik:GridTableView DataKeyNames="IdConocimiento" Name="Conocimiento" Width="100%">
                        <DetailTables>
                            <telerik:GridTableView DataKeyNames="IdTema" Name="Tema" Width="100%">
                                <Columns>
    <telerik:GridBoundColumn SortExpression="IdEmpleado" HeaderText="IdEmpleado" HeaderButtonType="TextButton"
                                        DataField="IdEmpleado" DataType="System.Int32" Visible="false">
                                    </telerik:GridBoundColumn>                                    
   <telerik:GridBoundColumn SortExpression="IdTema" HeaderText="IdTema" HeaderButtonType="TextButton"
                                        DataField="IdTema" DataType="System.Int32" >
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="Nivel0" HeaderText="Nivel0" HeaderButtonType="TextButton"
                                        DataField="Nivel0">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="Nivel1" HeaderText="Nivel1" HeaderButtonType="TextButton"
                                        DataField="Nivel1">
                                    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn SortExpression="Nivel2" HeaderText="Nivel2" HeaderButtonType="TextButton"
                                        DataField="Nivel2">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="Nivel3" HeaderText="Nivel3" HeaderButtonType="TextButton"
                                        DataField="Nivel3">
                                    </telerik:GridBoundColumn>
        <telerik:GridBoundColumn SortExpression="Nivel4" HeaderText="Nivel4" HeaderButtonType="TextButton"
                                        DataField="Nivel4">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="Experiencia" HeaderText="Experiencia" HeaderButtonType="TextButton"
                                        DataField="Experiencia">
                                    </telerik:GridBoundColumn>
                                </Columns>
                            </telerik:GridTableView>
                        <DetailTables>
                    <telerik:GridTableView DataKeyNames="IdConocimiento" Width="100%">
                        <Columns>
                        <telerik:GridBoundColumn SortExpression="IdTema" HeaderText="IdTema" HeaderButtonType="TextButton"
                                DataField="IdTema" DataType="System.Int32" >
                                </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn SortExpression="IdConocimiento" HeaderText="IdConocimiento" HeaderButtonType="TextButton"
                                DataField="IdConocimiento" DataType="System.Int32" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn SortExpression="IdTema" HeaderText="IdTema" HeaderButtonType="TextButton"
                                DataField="IdTema" UniqueName="IdTema" DataType="System.Int32" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn SortExpression="Descripcion" HeaderText="SubTema" HeaderButtonType="TextButton"
                                DataField="Descripcion" UniqueName="Descripcion">
                            </telerik:GridBoundColumn>
                        </Columns>                       
                    </telerik:GridTableView>
                </DetailTables>
                <Columns>
                <telerik:GridBoundColumn SortExpression="" HeaderText="IdConocimiento " HeaderButtonType="TextButton"
                    DataField="IdConocimiento" DataType="System.Int32" ReadOnly="true" Visible="false">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn SortExpression="Valor" HeaderText="Tema" HeaderButtonType="TextButton"
                    DataField="Valor">
                </telerik:GridBoundColumn>                                   
            </Columns>
            </MasterTableView>
Tags
Grid
Asked by
Hugo
Top achievements
Rank 1
Answers by
Bruno
Top achievements
Rank 2
Hugo
Top achievements
Rank 1
Share this question
or