none
Recorrer un GridView y obtener valores RRS feed

  • Pregunta

  • Hola buenas tardes,

    Antes de nada gracias por dedicarle tiempo a mi consulta. Vereis tengo un GridView que me gustaría recorrer y segun el valor de una de las celdas de la fila cambiar de color la fila entera.  Se como recorrer el gridview pero no se como obtener el valor de una de las celdas.  Este es el codigo que tengo pero no me devuelve valor alguno.


            For Each row As GridViewRow In GridView1.Rows


                For Each row2 As DataRow In vDS.Tables(0).Rows

                    Dim id As String = row2("CodigoIncidencia")
                    If row.FindControl("CodigoIncidencia").Equals(id) Then
                        row.BackColor = Color.Red
                    End If
                Next



            Next

    Un saludo y gracias.

    martes, 3 de mayo de 2016 10:27

Respuestas

  • Bueno ya arregle mi problema recorriendo el gridView en el evento 

    CustomersGridView_RowDataBound os copio el codigo por si a alguien le sirve de ejemplo :

    Sub GridView1_RowDataBound(ByVal sender As Object, _
        ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)

            Dim vSW As New SWGestionOS.GestionOS
            Dim vDS As Data.DataSet
            Dim squery As String

            squery = "SELECT CodigoIncidencia  FROM [OSSLITE3].[dbo].[INCIDENCIA] inc ,[OSSLITE3].[dbo].[INC_LOG_INTERNO] loginc   WHERE IDLOG = (SELECT TOP 1  IDLOG FROM [OSSLITE3].[dbo].[INC_LOG_INTERNO]  WHERE IncidenciaID=INC.IncidenciaServicioID and Interno=0 ORDER BY Fecha) and  loginc.Fecha<GETDATE()-2 AND inc.Estado in ('EN CURSO','EN VERIFICACION')"
            vDS = vSW.DevolverConsulta(squery)

            If e.Row.RowType = DataControlRowType.DataRow Then
                'determine the value of the UnitsInStock field
                Dim Codigoincidencia As String = DataBinder.Eval(e.Row.DataItem, _
                  "CodigoIncidencia").ToString

                For Each row2 As DataRow In vDS.Tables(0).Rows

                    Dim id As String = row2("CodigoIncidencia")
                    If Codigoincidencia = id Then
                        e.Row.BackColor = Color.Red
                    End If

                Next
            End If
        End Sub

    miércoles, 4 de mayo de 2016 9:26

Todas las respuestas

  • Puedes usar row.Cells(NúmeroDeColumna).Text

    For Each row As GridViewRow In GridView1.Rows

        For Each row2 As DataRow In vDS.Tables(0).Rows
            Dim id As String = row2.Cells("CodigoIncidencia").Text
            If row.Cells("CodigoIncidencia").Text  = id Then
                row.BackColor = Color.Red
            End If
        Next

    Next


    Saludos, Javier J

    martes, 3 de mayo de 2016 10:41
  • Gracias Javier pero si uso:

    row.Cells("CodigoIncidencia").Text 

    Me dice 

    {"Conversion from string "CodigoIncidencia" to type 'Integer' is not valid."} System.InvalidCastException

    Si  uso row.Cells(0).Text 

    No me devuelve valor .

    El gridView es el siguiente a ver si asi da una pista:

                                                                                                                                                                   

     <asp:GridView ID="GridView1" runat="server" DataSourceID="ODSIncidencias" Width="100%" AutoGenerateColumns="False" EmptyDataText="N/D" AllowPaging="True" AllowSorting="True" EnableTheming="False" GridLines="Horizontal" PageSize="35">
                                        <RowStyle CssClass="FilaImpar" Wrap="False" VerticalAlign="Middle"  />
                                        <AlternatingRowStyle CssClass="FilaPar" Wrap="False" />
                                        <Columns>
                                            <asp:HyperLinkField DataNavigateUrlFields="CodigoIncidencia,IncidenciaServicioID" DataNavigateUrlFormatString="AmplIncidencia.aspx?ID={0}&amp;INC={1}"
                                                DataTextField="CodigoIncidencia" HeaderText="C&#243;digo Inc." DataTextFormatString="{0}" >
                                                <HeaderStyle Wrap="False"/>
                                                <ItemStyle Font-Size="12px" Wrap="False" HorizontalAlign="Left" Height="20px" />
                                            </asp:HyperLinkField>
                                            <asp:TemplateField HeaderImageUrl="~/Imagenes/Flechita.gif" SortExpression="CodigoIncidencia">
                                                <ItemStyle Wrap="False" />
                                            </asp:TemplateField>
                                             <asp:TemplateField></asp:TemplateField>

                                             <asp:BoundField DataField="Tipologiabrev" HeaderText="T. Incidencia" >
                                                <ItemStyle Font-Size="12px" Wrap="False"/>
                                                <HeaderStyle Wrap="False" HorizontalAlign="center"  />
                                            </asp:BoundField>
                                            <asp:TemplateField HeaderImageUrl="~/Imagenes/Flechita.gif" SortExpression="Tipologia">
                                                <ItemStyle Width="1%" Font-Size="10px" Wrap="False"/>
                                                <HeaderStyle Width="1%" Wrap="False"/>
                                            </asp:TemplateField>

                                            <asp:BoundField DataField="estado" HeaderText="Estado" >
                                                <HeaderStyle Wrap="False"/>
                                                <ItemStyle Font-Size="12px" Wrap="False" HorizontalAlign="center" />
                                            </asp:BoundField>
                                            <asp:TemplateField HeaderImageUrl="~/Imagenes/Flechita.gif" SortExpression="estado">
                                            </asp:TemplateField>

                                            <asp:BoundField DataField="estadoInterno" HeaderText="Estado Int" >
                                                <HeaderStyle Wrap="False"/>
                                                <ItemStyle Font-Size="12px" Wrap="False" HorizontalAlign="center" />
                                            </asp:BoundField>
                                            <asp:TemplateField HeaderImageUrl="~/Imagenes/Flechita.gif" SortExpression="estadoInterno">
                                            </asp:TemplateField>

                                            <asp:BoundField DataField="GrupoTrabajo" HeaderText="G. Trabajo" >
                                                <ItemStyle Font-Size="12px" Wrap="False" HorizontalAlign="center"/>
                                                <HeaderStyle Wrap="False"/>
                                            </asp:BoundField>
                                            <asp:TemplateField></asp:TemplateField>

                                             <asp:TemplateField HeaderImageUrl="~/Imagenes/Flechita.gif" SortExpression="GrupoTrabajo">
                                            </asp:TemplateField>
                                            <asp:BoundField DataField="INC_SINTOMA" HeaderText="S&iacute;ntoma" >
                                                <ItemStyle Font-Size="12px" Wrap="False"/>
                                                <HeaderStyle Wrap="False" />
                                            </asp:BoundField>

                                            <asp:BoundField DataField="FechaSolicitud" HeaderText="F. Creada" >
                                                <ItemStyle Font-Size="12px" Wrap="False"/>
                                                <HeaderStyle Wrap="False"/>
                                            </asp:BoundField>
                                            <asp:TemplateField HeaderImageUrl="~/Imagenes/Flechita.gif" SortExpression="FechaSolicitud">
                                            </asp:TemplateField>

                                            <asp:BoundField DataField="FLM" HeaderText="FLM" >
                                                <ItemStyle Font-Size="12px" Wrap="False"/>
                                                <HeaderStyle Wrap="False"/>
                                            </asp:BoundField>
                                            <asp:TemplateField HeaderImageUrl="~/Imagenes/Flechita.gif" SortExpression="FLM">
                                            </asp:TemplateField>


                                        </Columns>
                                    </asp:GridView>  

    martes, 3 de mayo de 2016 11:12
  • Alguien me puede arrojar algo de luz en este tema por favor?
    miércoles, 4 de mayo de 2016 8:44
  • Bueno ya arregle mi problema recorriendo el gridView en el evento 

    CustomersGridView_RowDataBound os copio el codigo por si a alguien le sirve de ejemplo :

    Sub GridView1_RowDataBound(ByVal sender As Object, _
        ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)

            Dim vSW As New SWGestionOS.GestionOS
            Dim vDS As Data.DataSet
            Dim squery As String

            squery = "SELECT CodigoIncidencia  FROM [OSSLITE3].[dbo].[INCIDENCIA] inc ,[OSSLITE3].[dbo].[INC_LOG_INTERNO] loginc   WHERE IDLOG = (SELECT TOP 1  IDLOG FROM [OSSLITE3].[dbo].[INC_LOG_INTERNO]  WHERE IncidenciaID=INC.IncidenciaServicioID and Interno=0 ORDER BY Fecha) and  loginc.Fecha<GETDATE()-2 AND inc.Estado in ('EN CURSO','EN VERIFICACION')"
            vDS = vSW.DevolverConsulta(squery)

            If e.Row.RowType = DataControlRowType.DataRow Then
                'determine the value of the UnitsInStock field
                Dim Codigoincidencia As String = DataBinder.Eval(e.Row.DataItem, _
                  "CodigoIncidencia").ToString

                For Each row2 As DataRow In vDS.Tables(0).Rows

                    Dim id As String = row2("CodigoIncidencia")
                    If Codigoincidencia = id Then
                        e.Row.BackColor = Color.Red
                    End If

                Next
            End If
        End Sub

    miércoles, 4 de mayo de 2016 9:26