aspx
codice:
<asp:ScriptManager runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="3000" ontick="Timer_Tick"></asp:Timer>
<div class="row">
<div class="col-xs-6" style="float:left;">
<asp:GridView ID="gv_primo" runat="server" CssClass="table table-sm" HeaderStyle-CssClass="thead-light" DataKeyNames="xxx,yyy" OnSelectedIndexChanged="gv_primo_SelectedIndexChanged" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="xxx" HeaderText="Ubicazione" SortExpression="xxx" />
<asp:BoundField DataField="yyy" HeaderText="UDM Host" SortExpression="yyy" />
</Columns>
</asp:GridView>
</div>
<div class="col-xs-6" style="float:left;">
<asp:GridView ID="gv_secondo" runat="server" AutoGenerateColumns="false" CssClass="table table-sm" HeaderStyle-CssClass="thead-light">
<Columns>
<asp:BoundField DataField="aaa" HeaderText="Cod.Articolo" SortExpression="aaa" />
<asp:BoundField DataField="bbb" HeaderText="Descrizione" SortExpression="bbb" />
<asp:BoundField DataField="ccc" HeaderText="Q.tà" SortExpression="ccc" />
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
codebehind
codice:
Public tmTimer As New Timer
...
Public Overridable Sub Timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
Dim riga As Integer = gv_primo.SelectedIndex
If riga < gv_primo.Rows.Count - 1 Then
riga += 1
Else
riga = 0
End If
selezionariga(riga)
End Sub
'questa sotto evidenzia la riga selezionata nel primo gv e lancia la sub che valorizza il secondo
Private Sub selezionariga(ByVal riga As Integer)
Dim gv As GridView = gv_primo
gv.SelectedIndex = riga
gv.Rows(riga).BackColor = Color.Gray
For i = 0 To gv.Rows.Count - 1
If (gv.Rows(i).RowIndex <> riga) Then
gv.Rows(i).BackColor = Color.Empty
End If
Next
gv_primo_SelectedIndexChanged(gv_primo, Nothing)
End Sub
'valorizzo il secondo gv in base alla riga selezionata del primo
Protected Sub gv_primo_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim flt1 As String = gv_primo.SelectedDataKey.Values(0).ToString
Dim flt2 As String = gv_primo.SelectedDataKey.Values(1).ToString
Dim cmd As SqlCommand, dtt As New DataTable
Try
Dim cn = New SqlConnection(ConfigurationManager.ConnectionStrings("LOG").ConnectionString)
Using cn
cn.Open()
Dim strSQL = "SELECT * ..... WHERE campo1 =" & flt1 & " AND campo2= " & flt2
cmd = New SqlCommand(strSQL, cn)
Dim rs As SqlDataReader = cmd.ExecuteReader
If rs.HasRows Then dtt.Load(rs)
gv_secondo.DataSource = dtt
gv_secondo.DataBind()
End Using
Catch ex As Exception
End Try
End Sub