Bonjour,
J'ai une page contenant deux control ascx.
Un contient un menu créé avec du Xml, l'autre un formulaire web que je cache pour afficher les résultats dans un DataGrid construit dynamiquement.
Le problème est que lorsque je clique sur le lien pour le trie ou pour la selection d'une ligne, mon datagrid disparait. Je n'arrive pas à comprendre ce qui ce passe et pourquoi les actions de trie et de selection ne fonctionnent pas.
Je vous met le code de mon controle ascx concernant le contenu.
En espérant que quelqu'un puisse m'aider, merci d'avance.
'déclaration du nouveau datagrid et de ses propriétés
Dim resultGrid As New DataGrid
:
:
'ajout d'une colonne au datagrid
Dim datagridcol As New BoundColumn
datagridcol.HeaderText = "IdBien"
datagridcol.DataField = "IdBien"
datagridcol.Visible = False
resultGrid.Columns.Add(datagridcol)
:
:
:
Dim selectcol As New ButtonColumn
selectcol.ButtonType = ButtonColumnType.LinkButton
selectcol.HeaderText = detail
selectcol.Text = "Editer"
selectcol.CommandName = "Select"
resultGrid.Columns.Add(selectcol)
' ajout des évenements de tri et de selection
AddHandler resultGrid.SelectedIndexChanged, AddressOf resultGrid_SelectedIndexChanged
AddHandler resultGrid.SortCommand, AddressOf resultGrid_SortCommand
'mise à jours du datagrid
resultGrid.DataSource = GetDataSet()
resultGrid.DataBind()
'ajout du datagrid à la page
Page.Controls(1).Controls.Add(resultGrid)
End Sub
Public Function GetDataSet(Optional ByVal sortfield As String = "") As DataSet
Dim SQL As String
SQL = Replace(Session("SQL"), "count(*) as nb", " * ")
Session("SQL") = SQL
context.Trace.Write("SQL aff", SQL)
' Connexion utilisé pour accéder à la base du site d'immobilier
Dim Conn As New SqlConnection(ConfigurationSettings.AppSettings("ConnexionDB"))
Dim da As SqlDataAdapter
Dim ds As New DataSet
If sortfield = "" Then
da = New SqlDataAdapter(Session("SQL"), Conn)
Else
Titre.Text = "tintin tintitn"
da = New SqlDataAdapter(Session("SQL") + " order by " & sortfield, Conn)
End If
context.Trace.Write("getdata : ", "Getdata ok")
da.Fill(ds, "BIEN")
Return ds
End Function
'fonction gérant le tri des differents champs par ordre alpha
Private Sub resultGrid_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles resultGrid.SortCommand
context.Trace.Write("trie : ", "trie ok ")
test.Text = "tututututu"
' DataBind()
GetDataSet(e.SortExpression)
End Sub
'fonction gérant la selection d'un bien
Private Sub resultGrid_SelectedIndexChanged(ByVal sender As Object, ByVal args As System.EventArgs) Handles resultGrid.SelectedIndexChanged
test.Text = "tototototo"
'DataBind()
'test.Text = resultGrid.SelectedItem.Cells(1).Attributes.Item(1).ToString()
Response.Redirect("default.aspx?section=rechercher&page=" + resultGrid.SelectedItem.Cells(1).Text)
End Sub