Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Custom gridview with custom pagerTemplate
giovedì 08 febbraio 2007 - 21.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
kueza
Profilo
| Newbie
18
messaggi | Data Invio:
gio 8 feb 2007 - 21:56
Ciao a tutti,
Ho il seguente problema:
Passi
1) Ho esteso un gridView
2) Ho creato un classe PagerTemplate che implementa l'interfacciaITemplate
3) Ho creato un Evento ChangePagesizeEventArgs che esten ....
Ho associato il pagertemplate alla gridview durante l'evento init, intercetto l'evento di changePageSize tramite la sub m_PagerTemplate_changedPageSize e cambio il pagesize al grid in questa maniera la grid cambia visualizzando più o meno record ma il valore della combo non mantiene il suo stato viene reimpostato alla prima posizione, praticamente cosa succede, viene chiamato una seconda volta il metodo instancein del pager template.
La soluzione che ho trovato e salvarmi il valore nel viewstate clientid del grid + la chiave e nel metodo instancein rileggere il valore, ma sono sicuro di essermi perso qualche cosa... qualcuna sa darmi una soluzione più brillante spero di essermi spiegato bene.
Public Class gridPager : Inherits GridView
Private WithEvents m_PagerTemplate As PagerTemplate
Private Sub gridPager_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
m_PagerTemplate = New PagerTemplate
Me.PagerTemplate = m_PagerTemplate
End Sub
Private Sub m_PagerTemplate_changedPageSize(ByVal sender As Object, ByVal e As ChangedPageSizeEventArgs) Handles m_PagerTemplate.changedPageSize
Me.PageSize = e.PageSize
End Sub
End Class
Public Class PagerTemplate : Implements System.Web.UI.ITemplate
Private WithEvents m_Combo As DropDownList
Public Delegate Sub onChangedPageSize(ByVal sender As Object, ByVal e As ChangedPageSizeEventArgs)
Public Event changedPageSize As onChangedPageSize
Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
m_Combo = New DropDownList
m_Combo.Items.Add(New ListItem("1", "1"))
m_Combo.Items.Add(New ListItem("2", "2"))
m_Combo.Items.Add(New ListItem("10", "10"))
m_Combo.AutoPostBack = True
container.Controls.Add(m_Combo)
End Sub
Private Sub m_Combo_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles m_Combo.SelectedIndexChanged
RaiseEvent changedPageSize(sender, New ChangedPageSizeEventArgs(CInt(m_Combo.SelectedValue)))
End Sub
End Class
Public Class ChangedPageSizeEventArgs : Inherits EventArgs
Private m_PageSize As Integer
Public Property PageSize() As Integer
Get
Return m_PageSize
End Get
Set(ByVal value As Integer)
m_PageSize = value
End Set
End Property
Public Sub New(ByVal pageSize As Integer)
Me.m_PageSize = pageSize
End Sub
End Class
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !