Visualizzazione dei risultati da 1 a 5 su 5

Discussione: master-detail

  1. #1

    master-detail

    ciao a tutti,

    ho questo piccolo problema

    Ho la tabella master in un datagrid, quando clicco sull'item mi appare la tabella detail in un datalist e fin qui tutto ok. Il mio problema e quando mi trovo sulla seconda o succesiva pagina della paginazione il master mi ritorna sempre alla prima pagina dopo aver cliccato sull'item del datagrid.

    <asp:TemplateColumn>
    <ItemTemplate>
    Risposte a questo intervento

    </ItemTemplate>
    </asp:TemplateColumn>
    questo è il link su ogni item del master...

    spero di essere stato chiaro
    cordiali saluti
    rafpas

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Penso che dovresti postare il codice degli eventi command del tuo datagrid.


    Hey hey, my my Rock and roll can never die!

  3. #3
    questo è il mio codice del Codebehind:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Conn = New OleDbConnection(Application("strConn"))
    Label2.Text = Request.QueryString("Des")
    If Not Page.IsPostBack Then
    BindGrid()
    End If

    Dim sDetails As String
    Dim intID As String

    sDetails = Request.QueryString("action")

    If sDetails = "details" Then
    pnl1.Visible = "true"
    doShowDetails()
    End If
    End Sub

    Sub doShowDetails()
    Dim MySQL As String = "SELECT Risposte.Data,Risposte.Descrizione,Risposte.ID_Ric hiesta FROM Risposte INNER JOIN Richiesta ON Risposte.ID_Richiesta = Richiesta.ID_Richiesta WHERE Risposte.ID_Richiesta=" & Request.QueryString("id") & " AND Richiesta.ID_Richiesta=" & Request.QueryString("id") & " order by Risposte.Data desc"
    Dim DS As DataSet = New DataSet()
    Dim Cmd As New OleDbDataAdapter(MySQL, Conn)
    Cmd.Fill(DS, "Risposte")
    MyDataList.DataSource = DS.Tables("Risposte").DefaultView
    If DS.Tables("Risposte").Rows.Count > 0 Then
    MyDataList.DataBind()
    Else
    Me.RegisterStartupScript("test", "<script language='javascript'>alert ('Nessuna risposta per questo intervento');</script>")
    End If

    End Sub

    Sub BindGrid()
    Dim strSQL As String
    Dim quanti As Integer
    Dim DS As DataSet

    strSQL = "SELECT Richiesta.Oggetto, Richiesta.Difetto, Richiesta.Sede, Richiesta.Data, Richiesta.Reparto, Richiesta.Intervento, Richiesta.ID_Richiesta, Richiesta.Telefono, Richiesta.Orario,Richiesta.Conclusione FROM Richiesta WHERE Richiesta.Intervento=true and Richiesta.Conclusione=0 and Richiesta.Codicecli=" & Request("Cod") & " order by ID_Richiesta "

    Dim Cmd As New OleDbDataAdapter(strSQL, Conn)
    Conn.Open()
    Cmd.SelectCommand.ExecuteNonQuery()

    DS = New DataSet()
    Cmd.Fill(DS, "Richiesta")
    quanti = DS.Tables("Richiesta").Rows.Count.ToString()
    MyGridris.DataSource = DS.Tables("Richiesta").DefaultView
    If DS.Tables("Richiesta").Rows.Count > 0 Then
    MyGridris.DataBind()
    Else
    Me.RegisterStartupScript("test", "<script language='javascript'>alert ('Attenzione!! non ci sono risposte in questo momento');</script>")
    End If
    Conn.Close()
    Messaggio.Text = "Pagina " & MyGridris.CurrentPageIndex + 1 & _
    " di " & MyGridris.PageCount & _
    ". Record totali = " & quanti
    End Sub

    Sub saltapagina(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
    pnl1.Visible = False
    MyGridris.CurrentPageIndex = e.NewPageIndex
    BindGrid()
    End Sub

  4. #4
    niente ancora.....quando è possibile avere una risposta

    grazie e saluti

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Leggendo io codice mi pare di capire che per visualizzare il DataList non esegui un PostBack, ma Ricarichi la pagina con un'altra queryString. Se è cos'i è normale che ti mostri la prima pagina del DataGrid.
    Per ovviare a questo ti consiglio di inserire nella querystring ache il numero della pagina e nella routine DoShowDetails imposti la pagina da visualizzare:

    MyDataGrid.CurrentPageIndex = Request.QueryString("Num_Pagina").

    Altrimenti (e forse sarebbe meglio) ti consiglio di vedere l'evento ItemCommand del DataGrid (Ti evita di ricaricare la pagina eseguendo un postBack).

    Hey hey, my my Rock and roll can never die!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.