J'ai lu des articles et des articles et juste devenir un peu confus et par conséquent brûler à travers le temps je n'ai pas pour le momentASP VB Bloqué sur les contrôles dynamiques, Viewstate et Postback. Pourrait vraiment utiliser un peu d'aide pour se remettre sur la bonne voie
Quelqu'un peut-il regarder mon code et Dites-moi où je me suis trompé?
Partial Class PayerContacts
Inherits System.Web.UI.Page
Dim connStrDRContacts As String = ConfigurationManager.ConnectionStrings("DRContacts_SQL").ConnectionString
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
navBuild()
End Sub
Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
If IsPostBack Then
LoadContacts(ViewState("objSender"))
End If
End Sub
Private Function navBuild() As Integer
Dim SQLstrDRs As String = "SELECT * FROM DRList"
Dim DbConnDRs As SqlConnection = New SqlConnection(connStrDRContacts)
DbConnDRs.Open()
Dim dtDRsTemp As New DataTable
Dim SQLAdapterDRs As New SqlDataAdapter(SQLstrDRs, DbConnDRs)
SQLAdapterDRs.Fill(dtDRsTemp)
'Loop through each row of the DataView to create HTML table data
Dim NewTableRow As New TableRow
For Each row As DataRow In dtDRsTemp.Rows
'CREATE table with button to display contacts related to client (one to many)
Dim NewTableButton As LinkButton = New LinkButton
NewTableButton.ID = "btnDRName" & NewTableText
NewTableButton.ViewStateMode = UI.ViewStateMode.Enabled
AddHandler NewTableButton.Click, AddressOf LoadContacts
Next
Return 0
End Function
Protected Sub LoadContacts(sender As Object, e As EventArgs)
Dim LoopCount As Integer = 0
Dim SQLstrLoadTable As String = "SELECT * FROM ContactList WHERE DRVendor = '" & sender.Text.ToString & "'"
and so on....
SQLAdapterLoadTable.Fill(dtLoadTableTemp)
Dim NewTableRow As New TableRow
For Each row As DataRow In dtLoadTableTemp.Rows
'CREATE Accordion to display data
NewAccordion.ID = "ContactAccordion" & LoopCount
NewAccordion.Visible = True
blah, blah...
'SET Pane
NewAccordionPane.HeaderContainer.ID = "PaneHeader" & LoopCount
NewAccordionPane.ContentContainer.ID = "PaneContent" & LoopCount
'CREATE button to open ModalPopup to EDIT each record
Dim imgGear As New ImageButton
imgGear.ID = "btnGear" & row!ID.ToString
imgGear.ViewStateMode = UI.ViewStateMode.Enabled
AddHandler imgGear.Click, AddressOf EditRecord
'LOAD Pane
NewAccordionPane.HeaderContainer.Controls.Add(NewHeaderTable)
NewAccordionPane.ContentContainer.Controls.Add(New LiteralControl(NewTableText))
ViewState("objSender") = sender
End Sub
Protected Sub EditRecord(ByVal sender As Object, ByVal e As EventArgs)
'Open ModalPopup to edit record
popup.Show()
pnlAddEdit.Visible = True
End Sub
End Class
Qu'essayez-vous de faire? Qu'est-ce qui est cassé? Avez-vous essayé le débogage? Veuillez également réduire le code au minimum nécessaire pour reproduire le problème. (Parfois, ce processus est suffisant pour comprendre le problème tout seul!) – Barett
OK, je l'ai réduit. Ce que j'essaie de faire, c'est d'ouvrir une page avec une barre NAV et de lister tous les clients, de cliquer sur le nom de ce client et d'afficher des «cartes de contact» pliables pour chaque contact. Puis il y a une icône d'engrenage dans l'en-tête de chaque carte de contact (accordéon) que vous cliquez pour modifier ce contact individuel (une fenêtre modale à éditer) – mreinsmith
La barre de navigation de la liste des clients fonctionne et affiche les contacts liés au client. Mais je ne peux pas obtenir l'icône d'engrenage pour ouvrir la fenêtre contextuelle Modal. Passant le gestionnaire de la publication ne semble pas fonctionner – mreinsmith