Foros del Web » Programando para Internet » ASPX (.net) »

Generar un gridview en base a otro!!!

Estas en el tema de Generar un gridview en base a otro!!! en el foro de ASPX (.net) en Foros del Web. Hola a todos!!! Pues verán, estoy trabajando con gridviews en aspx.net, y quisiera saber como poder generar un gridview en base a otro, el cual ...
  #1 (permalink)  
Antiguo 07/11/2011, 11:13
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 8 meses
Puntos: 1
Información Generar un gridview en base a otro!!!

Hola a todos!!!

Pues verán, estoy trabajando con gridviews en aspx.net, y quisiera saber como poder generar un gridview en base a otro, el cual al seleccionar un campo en especifico (en mi caso el campo "rpe") me genere otro gridview con los campos que yo quiera (en mi caso son las incidencias o incapacidades del empleado que seleccione en el primer gridview).

Hasta el momento uso la propiedad SelectedRow y consigo que me muestre el campo que selecciono en el gridview, pero no se como hacer para generar el otro al seleccionarlo, hice una variable cadena para pasarla como parametro a mi segunda consulta del segundo gridview pero como que no me reconoce la variable ... Agradezco sus respuestas y ayudas!!!... Este es el código que hasta el momento llevo...

Código ASP:
Ver original
  1. <%@ Page language="VB" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4.  
  5. <script runat="server">
  6.  
  7.   Sub CustomersGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
  8.  
  9.     Dim row As GridViewRow = CustomersGridView.SelectedRow
  10.  
  11.         MessageLabel.Text = "Has seleccionado a " & row.Cells(1).Text & "."
  12.         Dim cadena As String = row.Cells(1).Text
  13.         Label2.Text = "Has seleccionado a " & cadena & "."
  14.   End Sub
  15.  
  16.   Sub CustomersGridView_SelectedIndexChanging(ByVal sender As Object, ByVal e As GridViewSelectEventArgs)
  17.  
  18.     Dim row As GridViewRow = CustomersGridView.Rows(e.NewSelectedIndex)
  19.  
  20.     If row.Cells(1).Text = "ANATR" Then
  21.  
  22.         e.Cancel = True
  23.         MessageLabel.Text = "You cannot select " + row.Cells(1).Text & "."
  24.  
  25.     End If
  26.  
  27.   End Sub
  28.  
  29. </script>
  30.  
  31. <html xmlns="http://www.w3.org/1999/xhtml" >
  32.   <head id="Head1" runat="server">
  33.     <title>GridView Select Example</title>
  34. </head>
  35. <body>
  36.     <form id="form1" runat="server">
  37.  
  38.      <h3>GridView Select Example</h3>
  39.  
  40.      <asp:gridview id="CustomersGridView"
  41.        datasourceid="CustomersSource"
  42.        autogeneratecolumns="False"
  43.        autogenerateselectbutton="True"
  44.        allowpaging="True"
  45.        selectedindex="1"
  46.        onselectedindexchanged="CustomersGridView_SelectedIndexChanged"
  47.        onselectedindexchanging="CustomersGridView_SelectedIndexChanging"  
  48.        runat="server" DataKeyNames="rpe">
  49.  
  50.          <Columns>
  51.              <asp:BoundField DataField="rpe"
  52.                  HeaderText="RPE del Empleado"
  53.                  InsertVisible="False" ReadOnly="True"
  54.                  SortExpression="b_contra.fe_repro" />
  55.              <asp:BoundField DataField="nombre"
  56.                  HeaderText="Nombre del Empleado"
  57.                  SortExpression="c_zonas.nombre" />
  58.              <asp:BoundField DataField="Edad"
  59.                  HeaderText="Edad del Empleado"
  60.                  SortExpression="fe_inic" />
  61.                  <asp:BoundField DataField="nombrezona"
  62.                  HeaderText="Nombre de la Zona"
  63.                  SortExpression="fe_inic" />
  64.                  <asp:BoundField DataField="area"
  65.                  HeaderText="Area en que labora"
  66.                  SortExpression="fe_inic" />
  67.                  <asp:BoundField DataField="puesto"
  68.                  HeaderText="Puesto"
  69.                  SortExpression="fe_inic" />
  70.                  <asp:BoundField DataField="fe_natra"
  71.                  HeaderText="Fecha de Nacimiento"
  72.                  SortExpression="fe_inic" />
  73.                  <asp:BoundField DataField="fe_antre"
  74.                  HeaderText="Fecha de Antigüedad Reconocida"
  75.                  SortExpression="fe_inic" />
  76.                  <asp:BoundField DataField="fe_ingre"
  77.                  HeaderText="Fecha de Ingreso"
  78.                  SortExpression="fe_inic" />
  79.                  <asp:BoundField DataField="ubicacion"
  80.                  HeaderText="Ubicación"
  81.                  SortExpression="fe_inic" />
  82.                  <asp:BoundField DataField="nides"
  83.                  HeaderText="nides"
  84.                  SortExpression="fe_inic" />
  85.                  <asp:BoundField DataField="nire"
  86.                  HeaderText="nire"
  87.                  SortExpression="fe_inic" />
  88.                  <asp:BoundField DataField="fe"
  89.                  HeaderText="Fecha Probable de Jubilación"
  90.                  SortExpression="fe_inic" />
  91.                  <asp:BoundField DataField="anyjub"
  92.                  HeaderText="Años Transcurridos Desde la jubilación"
  93.                  SortExpression="fe_inic" />
  94.                  <asp:BoundField DataField="fepos"
  95.                  HeaderText="Fecha Probable Para Jubilación"
  96.                  SortExpression="fe_inic" />
  97.          </Columns>
  98.  
  99.        <selectedrowstyle backcolor="LightCyan"
  100.          forecolor="DarkBlue"
  101.          font-bold="true"/>  
  102.  
  103.      </asp:gridview>
  104.  
  105.       <br/>
  106.  
  107.       <asp:label id="MessageLabel"
  108.         forecolor="Red"
  109.         runat="server"/>
  110.          <asp:label id="Label2"
  111.         forecolor="Red"
  112.         runat="server"/>
  113.  
  114.       <asp:sqldatasource id="CustomersSource"
  115.         selectcommand="SELECT MAX(b_contra.fe_repro), MAX(c_zonas.nombre) AS nombrezona, MAX(c_puesto.puesto) AS puesto, MAX(c_a_resp.dscarea) AS area, b_traba1.rpe, MAX(b_traba1.nombre) AS nombre, b_traba1.fe_antre, b_traba1.fe_ingre, b_traba3.fe_natra, CONVERT (INT,(DATEDIFF (dd, b_traba3.fe_natra, GETDATE()) - DATEDIFF (yy, b_traba3.fe_natra, GETDATE()) / 4.25) / 365) AS Edad, MAX(b_traba1.sexotrab) AS sexo, MAX(c_ubica.ubicapza) AS ubicacion, MAX(b_traba1.cl_nides) AS nides, MAX(b_traba1.if_nire2) AS nire, fe, CASE WHEN fe<GETDATE() THEN GETDATE() ELSE null END AS fepos, CONVERT (INT,(DATEDIFF (dd, GETDATE(), fe) - DATEDIFF (yy, GETDATE(), fe) / 4.25) / 365) AS anyjub FROM (SELECT fe_antre, CASE WHEN b_traba1.sexotrab='M' THEN DATEADD(yy, 30, b_traba1.fe_antre) ELSE DATEADD(yy, 25, b_traba1.fe_antre) END AS fe FROM b_traba1) AS t1, b_traba1, b_traba3, c_zonas, c_a_resp, c_ubica, c_puesto, b_contra WHERE (DATEDIFF(yy, b_traba1.fe_antre, GETDATE()) > 25) AND (DATEDIFF(yy, b_traba3.fe_natra, GETDATE()) > 55) AND b_traba1.cl_sitla IS NULL AND c_zonas.descr=b_traba1.cl_zona AND c_a_resp.area=b_traba1.area AND b_traba1.rpe=b_traba3.rpe AND b_traba1.rpe=b_contra.rpe AND c_puesto.cl_puest=b_contra.cl_puest AND b_traba1.fe_antre=t1.fe_antre AND b_traba1.cl_ubica=c_ubica.cl_ubica GROUP BY b_traba1.rpe, b_traba1.fe_antre, b_traba1.fe_ingre, b_traba3.fe_natra, fe"
  116.         connectionstring="server=myhost;database=mydb;User ID=myID;Password=mypass;Trusted_Connection=no"
  117.         runat="server"/>
  118.         <asp:gridview id="Gridview1"
  119.        datasourceid="Sqldatasource1"
  120.        autogeneratecolumns="False"
  121.        autogenerateselectbutton="True"
  122.        allowpaging="True"
  123.        selectedindex="1"
  124.        onselectedindexchanged="CustomersGridView_SelectedIndexChanged"
  125.        onselectedindexchanging="CustomersGridView_SelectedIndexChanging"  
  126.        runat="server" DataKeyNames="rpe">
  127.  
  128.          <Columns>
  129.              <asp:BoundField DataField="rpe"
  130.                  HeaderText="RPE del Empleado"
  131.                  InsertVisible="False" ReadOnly="True"
  132.                  SortExpression="b_contra.fe_repro" />
  133.              <asp:BoundField DataField="fe_inic"
  134.                  HeaderText="Nombre del Empleado"
  135.                  SortExpression="c_zonas.nombre" />
  136.              <asp:BoundField DataField="cl_incid"
  137.                  HeaderText="Edad del Empleado"
  138.                  SortExpression="fe_inic" />
  139.                  
  140.          </Columns>
  141.  
  142.        <selectedrowstyle backcolor="LightCyan"
  143.          forecolor="DarkBlue"
  144.          font-bold="true"/>  
  145.  
  146.      </asp:gridview>
  147.  
  148.       <br/>
  149.  
  150.  
  151.       <asp:sqldatasource id="Sqldatasource1"
  152.         selectcommand="SELECT rpe, fe_inic, cl_incid FROM b_asiste WHERE cl_incid='026' AND rpe='"&cadena&"' GROUP BY rpe, cl_incid, fe_inic"
  153.         connectionstring="server=myhost;database=mydb;User ID=myID;Password=mypass;Trusted_Connection=no"
  154.         runat="server"/>
  155.  
  156.     </form>
  157.  
  158.   </body>
  159. </html>

Última edición por stuart_david3; 07/11/2011 a las 11:58
  #2 (permalink)  
Antiguo 07/11/2011, 12:16
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Generar un gridview en base a otro!!!

Ok, creo que ya lo solucioné gracias a Dios, solo agregue is registros en un DataGrid :p, el código es el siguiente...

Sólo dos preguntas. Cómo podría abir en una nueva ventana mi DataGrid al seleccionarlo?? Y cómo valido un if para mandar un mensaje de error cuándo el resultado de la consulta del DataGrid es nulo??...

Código ASP:
Ver original
  1. <%@ Page language="VB" %>
  2. <%@ Import Namespace="System.Data" %>
  3. <%@ Import Namespace="System.Data.SqlClient" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  5.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6.  
  7. <script runat="server">
  8.  
  9.   Sub CustomersGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
  10.  
  11.     Dim row As GridViewRow = CustomersGridView.SelectedRow
  12.  
  13.         Dim cadena As String = row.Cells(1).Text
  14.         Label2.Text = "Has seleccionado a " & cadena & "."
  15.         Dim MyConnection As SqlConnection = New SqlConnection("server=myhost;database=mydb;User ID=myuser;Password=mypass;Trusted_Connection=no")
  16.         Dim MyCommand As SqlCommand = New SqlCommand("SELECT rpe as RPE_del_Empleado, convert(varchar,fe_inic,103) as Fecha_de_la_Incidencia, cl_incid AS Tipo_de_Incidencia FROM b_asiste WHERE cl_incid='026' AND rpe='" & cadena & "' GROUP BY rpe, cl_incid, fe_inic", MyConnection)
  17.  
  18.         MyConnection.Open()
  19.  
  20.         Dim dr As SqlDataReader = MyCommand.ExecuteReader()
  21.  
  22.         MyDataGrid.DataSource = dr
  23.         MyDataGrid.DataBind()
  24.     End Sub
  25.  
  26.     Sub CustomersGridView_SelectedIndexChanging(ByVal sender As Object, ByVal e As GridViewSelectEventArgs)
  27.  
  28.         Dim row As GridViewRow = CustomersGridView.Rows(e.NewSelectedIndex)
  29.  
  30.         If row.Cells(1).Text = "ANATR" Then
  31.  
  32.             e.Cancel = True
  33.             Label2.Text = "You cannot select " + row.Cells(1).Text & "."
  34.  
  35.         End If
  36.  
  37.     End Sub
  38.  
  39. </script>
  40.  
  41. <html xmlns="http://www.w3.org/1999/xhtml" >
  42.   <head id="Head1" runat="server">
  43.     <title>GridView Select Example</title>
  44. </head>
  45. <body>
  46.     <form id="form1" runat="server">
  47.  
  48.      <h3>GridView Select Example</h3>
  49.  
  50.      <asp:gridview id="CustomersGridView"
  51.        datasourceid="CustomersSource"
  52.        autogeneratecolumns="False"
  53.        autogenerateselectbutton="True"
  54.        allowpaging="True"
  55.        selectedindex="1"
  56.        onselectedindexchanged="CustomersGridView_SelectedIndexChanged"
  57.        onselectedindexchanging="CustomersGridView_SelectedIndexChanging"  
  58.        runat="server" DataKeyNames="rpe" BackColor="LightGoldenrodYellow"
  59.          BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black"
  60.          GridLines="None">
  61.  
  62.          <AlternatingRowStyle BackColor="PaleGoldenrod" />
  63.  
  64.          <Columns>
  65.              <asp:BoundField DataField="rpe"
  66.                  HeaderText="RPE del Empleado"
  67.                  InsertVisible="False" ReadOnly="True"
  68.                  SortExpression="b_contra.fe_repro" />
  69.              <asp:BoundField DataField="nombre"
  70.                  HeaderText="Nombre del Empleado"
  71.                  SortExpression="c_zonas.nombre" />
  72.              <asp:BoundField DataField="Edad"
  73.                  HeaderText="Edad del Empleado"
  74.                  SortExpression="fe_inic" />
  75.                  <asp:BoundField DataField="nombrezona"
  76.                  HeaderText="Nombre de la Zona"
  77.                  SortExpression="fe_inic" />
  78.                  <asp:BoundField DataField="area"
  79.                  HeaderText="Area en que labora"
  80.                  SortExpression="fe_inic" />
  81.                  <asp:BoundField DataField="puesto"
  82.                  HeaderText="Puesto"
  83.                  SortExpression="fe_inic" />
  84.                  <asp:BoundField DataField="fe_natra"
  85.                  HeaderText="Fecha de Nacimiento"
  86.                  SortExpression="fe_inic" />
  87.                  <asp:BoundField DataField="fe_antre"
  88.                  HeaderText="Fecha de Antigüedad Reconocida"
  89.                  SortExpression="fe_inic" />
  90.                  <asp:BoundField DataField="fe_ingre"
  91.                  HeaderText="Fecha de Ingreso"
  92.                  SortExpression="fe_inic" />
  93.                  <asp:BoundField DataField="ubicacion"
  94.                  HeaderText="Ubicación"
  95.                  SortExpression="fe_inic" />
  96.                  <asp:BoundField DataField="nides"
  97.                  HeaderText="nides"
  98.                  SortExpression="fe_inic" />
  99.                  <asp:BoundField DataField="nire"
  100.                  HeaderText="nire"
  101.                  SortExpression="fe_inic" />
  102.                  <asp:BoundField DataField="fe"
  103.                  HeaderText="Fecha Probable de Jubilación"
  104.                  SortExpression="fe_inic" />
  105.                  <asp:BoundField DataField="anyjub"
  106.                  HeaderText="Años Transcurridos Desde la jubilación"
  107.                  SortExpression="fe_inic" />
  108.                  <asp:BoundField DataField="fepos"
  109.                  HeaderText="Fecha Probable Para Jubilación"
  110.                  SortExpression="fe_inic" />
  111.          </Columns>
  112.  
  113.          <FooterStyle BackColor="Tan" />
  114.          <HeaderStyle BackColor="Tan" Font-Bold="True" />
  115.          <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue"
  116.              HorizontalAlign="Center" />
  117.  
  118.        <selectedrowstyle backcolor="DarkSlateBlue"
  119.          forecolor="GhostWhite"/>  
  120.  
  121.          <SortedAscendingCellStyle BackColor="#FAFAE7" />
  122.          <SortedAscendingHeaderStyle BackColor="#DAC09E" />
  123.          <SortedDescendingCellStyle BackColor="#E1DB9C" />
  124.          <SortedDescendingHeaderStyle BackColor="#C2A47B" />
  125.  
  126.      </asp:gridview>
  127.  
  128.       <br/>
  129.  
  130.          <asp:label id="Label2"
  131.         forecolor="Red"
  132.         runat="server"/>
  133.  
  134.       <asp:sqldatasource id="CustomersSource"
  135.         selectcommand="SELECT MAX(b_contra.fe_repro), MAX(c_zonas.nombre) AS nombrezona, MAX(c_puesto.puesto) AS puesto, MAX(c_a_resp.dscarea) AS area, b_traba1.rpe, MAX(b_traba1.nombre) AS nombre, b_traba1.fe_antre, b_traba1.fe_ingre, b_traba3.fe_natra, CONVERT (INT,(DATEDIFF (dd, b_traba3.fe_natra, GETDATE()) - DATEDIFF (yy, b_traba3.fe_natra, GETDATE()) / 4.25) / 365) AS Edad, MAX(b_traba1.sexotrab) AS sexo, MAX(c_ubica.ubicapza) AS ubicacion, MAX(b_traba1.cl_nides) AS nides, MAX(b_traba1.if_nire2) AS nire, fe, CASE WHEN fe<GETDATE() THEN GETDATE() ELSE null END AS fepos, CONVERT (INT,(DATEDIFF (dd, GETDATE(), fe) - DATEDIFF (yy, GETDATE(), fe) / 4.25) / 365) AS anyjub FROM (SELECT fe_antre, CASE WHEN b_traba1.sexotrab='M' THEN DATEADD(yy, 30, b_traba1.fe_antre) ELSE DATEADD(yy, 25, b_traba1.fe_antre) END AS fe FROM b_traba1) AS t1, b_traba1, b_traba3, c_zonas, c_a_resp, c_ubica, c_puesto, b_contra WHERE (DATEDIFF(yy, b_traba1.fe_antre, GETDATE()) > 25) AND (DATEDIFF(yy, b_traba3.fe_natra, GETDATE()) > 55) AND b_traba1.cl_sitla IS NULL AND c_zonas.descr=b_traba1.cl_zona AND c_a_resp.area=b_traba1.area AND b_traba1.rpe=b_traba3.rpe AND b_traba1.rpe=b_contra.rpe AND c_puesto.cl_puest=b_contra.cl_puest AND b_traba1.fe_antre=t1.fe_antre AND b_traba1.cl_ubica=c_ubica.cl_ubica GROUP BY b_traba1.rpe, b_traba1.fe_antre, b_traba1.fe_ingre, b_traba3.fe_natra, fe"
  136.         connectionstring="server=myhost;database=mydb;User ID=myuser;Password=mypass;Trusted_Connection=no"
  137.         runat="server"/>
  138.     <ASP:DataGrid id="MyDataGrid" runat="server"
  139.     Width="700px"
  140.     BackColor="LightGoldenrodYellow"
  141.     BorderColor="Tan"
  142.     CellPadding=2
  143.     Font-Name="Verdana"
  144.     Font-Size="8pt"
  145.     HeaderStyle-BackColor="#aaaadd"
  146.     EnableViewState="False" BorderWidth="1px" Font-Names="Verdana"
  147.          ForeColor="Black" GridLines="None"
  148.   >
  149.         <AlternatingItemStyle BackColor="PaleGoldenrod" />
  150.         <FooterStyle BackColor="Tan" />
  151. <HeaderStyle BackColor="Tan" Font-Bold="True"></HeaderStyle>
  152.         <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue"
  153.             HorizontalAlign="Center" />
  154.         <SelectedItemStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
  155.      </asp:DataGrid>
  156.     </form>
  157.    
  158.   </body>
  159. </html>

Última edición por stuart_david3; 07/11/2011 a las 12:49

Etiquetas: gridview, selectedindex, selectedrow, sql, tabla, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:37.