in
La comunità italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

Mantenere il posizionamento sulla pagina

Ultimo messaggio ricevuto il 08-05-2006 11.55 da secks. 2 risposta(e).
Pagina 1 di 1 (3 elemento/i)
Ordina messaggi: Precedente Successivo
  • 08-05-2006 10.29

    • secks
    • Utente Top 25
    • Registrato il 30-07-2004
    • Este (PD)
    • Messaggi 31

    Mantenere il posizionamento sulla pagina

    Ho una DataGrid su WebForm in VB.NET alimentata da una tabella con un numero di elementi che a volte superano il numero delle righe visibili. Sulla dataGrid è impostato un pulsante per modificare alcune colonne a livello di riga. Se sono ad esempio posizionato sull'ultima riga e clicco sul pulsante di modifica al PostBack mi va all'inizio della pagina.
    Al click sul pulsante di modifica vengono eseguite le seguenti istruzione ...

    DataGrid1.EditItemIndex = e.Item.ItemIndex

    DataGrid1.DataSource = _dasVar.Tables(TABTMPCOS)
    DataGrid1.DataKeyField = "CosID"

    Dim sortExpr As String = DataGrid1.Attributes("SortExpr")

    If Not (sortExpr Is Nothing) AndAlso sortExpr.ToString.Length > 0 Then
    Dim dv As DataView = _dasVar.Tables(TABTMPCOS).DefaultView
    dv.Sort = sortExpr.ToString
    DataGrid1.DataSource = dv
    End If

    DataGrid1.DataBind()

    If DataGrid1.EditItemIndex >= 0 Then

    Dim dgi As DataGridItem = DataGrid1.Items(DataGrid1.EditItemIndex)

    Dim y As DataRow = GetDataRowCos(DataGrid1.DataKeys(DataGrid1.EditItemIndex).ToString)

    Dim txtCosLis As TextBox = DirectCast(dgi.FindControl("txtCosLis"), TextBox)
    txtCosLis.Text = y("cos_lis")

    End If

    ... che mi permettono di modificare i dati.

    E' da un po' di tempo che cerco di risolvere il problema. Ho provato ad impostre sulla datagrid SmartNavigation=True.
    Ma non ho visto alcuna differenza.
    Ho visto che ci sono varie risposte nel forum al mio problema, ma non ho capito quale puo' fare al mio caso.
    Non riesco a capire come impostare un anchor in vb.net

    Come posso fare?

    Grazie e ciao a tutti.
    Paolo.

    • Log
  • 08-05-2006 11.05 In risposta a

    Re: Mantenere il posizionamento sulla pagina

    ASP.NET 1.0, 1.1

    L'uso dell'attributo SmartNavigation è efficiente, salvo alcune eccezioni, quando utilizzato a livello di pagina. Tuttavia, vista l'incompatibilità con Windows Server 2003 (una delle eccezioni) è, a parer mio, sconsigliabile.

    D'altro canto, creare un ancora HTML via codice è piuttosto semplice. Devi generare nell'HTML un tag di questo tipo:

    <a id="nome_ancora"></a>

    Se stai utilizzando un controllo DataGrid, inseriscilo all'interno della prima colonna della riga sulla quale ti vuoi posizionare al caricamento della pagina. Infine, per caricare la pagina, esegui:

    Response.Redirect Request.Url.AbsoluteUri + "#nome_ancora"

    Tieni presente che la specificazione dell'ancora deve immediatamente seguire il nome della pagina. Ovvero deve precedere la QueryString. Qualche esempio:

    http://www.dominio.it/pagina.aspx#nome_ancora

    http://www.dominio.it/pagina.aspx#nome_ancora?param1=x&param2=y

    Dovrebbe essere sufficiente.

    ASP.NET 2.0

    Se lavori con ASP.NET 2.0, invece, sarà tutto estremamente più semplice. Infatti, ti basterà impostare nelle direttive di pagina l'attributo MaintainScrollPositionOnPostBack su True:

    <%@ Page Language="VB" MaintainScrollPositionOnPostBack="true" %>

    • Log
  • 08-05-2006 11.55 In risposta a

    • secks
    • Utente Top 25
    • Registrato il 30-07-2004
    • Este (PD)
    • Messaggi 31

    Re: Mantenere il posizionamento sulla pagina

    Ti confermo che sto utilizzando ancora (purtroppo) ASP.NET 1.1

    Non mi è chiaro di come impostare all'interno della prima colonna del DataGrid.

    Inserisco una colonna con nome ANCORA?

    Quando clicco sul pulsante modifica, come faccio ad impostare il "nome_ancora"?

    Grazie ancora

    Ciao, Paolo.

     

    • Log
Pagina 1 di 1 (3 elemento/i)
Prelevato da http://www.devspy.com/forums/p/4163/4672.aspx
DevSpy.com 6.0 © 2001-2008 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"