2011-06-09 50 views
0

我有一個頁面,它在它加載時通過dynanically創建一個鏈接,點擊鏈接後它應該在數據庫中循環獲取所有記錄並顯示另一組鏈接,然後當我點擊這些鏈接也應該給我這個特定的記錄像這樣一個事件處理程序沒有在WebForms中觸發

Q的所有信息:加載頁面時,它創建與事件處理程序相關聯的第一個鏈接,它觸發第一個事件處理程序(的getName )但它沒有觸發第二個事件處理程序(GetnameDetails)

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 

     If ViewState.Item("nameload") IsNot Nothing Then 
      If ViewState.Item("nameload").ToString = "True" Then 
       Getname(Me, New EventArgs) 
      ElseIf ViewState.Item("Getnameload").ToString = "True" Then 
       GetnameDetails(Me, New EventArgs) 
      Else 
       CreateNamesButton() 
      End If 
     Else 
      CreateNamesButton() 
     End If 

頁面加載和名稱的鏈接創建

Private Sub CreateNamesButton() 
     Dim btnName As New LinkButton 
     btnName .Text = "Name" 
     Panel1.Controls.Add(btnName) 
     AddHandler btnName .Click, AddressOf Getname 
     ViewState.Item("nameload") = False.ToString 
    End Sub 

它火nameload事件處理

Private Sub Getname(ByVal sender As Object, ByVal e As EventArgs) 
     ' get products list here 
     ' and set handlers for each link 

     Dim testDb As New customer 
     Dim arr As ArrayList = testDb.DbLoop() 
     Dim ObjCustList As CustomerBo 
     Dim CustInt As Integer 
     Dim str As String 

     Dim link As LinkButton 

     For Each ObjCustList In arr 
      CustInt = ObjCustList.Cus_Id 
      link = New LinkButton 
      Panel1.Controls.Add(New LiteralControl("<br />")) 
      link.ID = CustInt 
      link.Text = ObjCustList.FirstName 
      link.CommandArgument = CustInt 
      str = link.CommandArgument 
      AddHandler link.Click, AddressOf GetnameDetails 
      Me.Panel1.Controls.Add(link) 

     Next ObjCustList 

     ViewState.Item("nameload") = True.ToString 

    End Sub 

它不火

Private Sub GetnameDetails(ByVal sender As Object, ByVal e As EventArgs) 

     Dim getRecord As New CustomerBo 
     Dim lbLink As LinkButton = CType(sender, LinkButton) 
     Dim CustomerID As String = lbLink.CommandArgument 
     Dim getLink As String = lbLink.Text 
     Dim SendCustID As Integer 
     SendCustID = CInt(CustomerID) 
     getRecord.Cus_Id = SendCustID 

     Dim getAllcatInfo As New customer 
     getRecord = getAllcatInfo.R_List(getRecord) 
     Panel1.Controls.Add(New LiteralControl("<table><tr>")) 
     Panel1.Controls.Add(New LiteralControl("<td colspan=2 align=center valign=middle >")) 
     Panel1.Controls.Add(New LiteralControl(getRecord.FirstName)) 
     Panel1.Controls.Add(New LiteralControl("</td>")) 
     Panel1.Controls.Add(New LiteralControl("<td>")) 
     Panel1.Controls.Add(New LiteralControl(getRecord.LastName)) 
     Panel1.Controls.Add(New LiteralControl("</td>")) 
     Panel1.Controls.Add(New LiteralControl("<td>")) 
     Panel1.Controls.Add(New LiteralControl(getRecord.Telephone)) 
     Panel1.Controls.Add(New LiteralControl("</td></tr></table>")) 
     ViewState.Item("Getnameload") = True.ToString 

     'get product details here 
    End Sub 

什麼我做錯了謝謝

回答

1

因爲你的其他條件沒有執行,請在代碼中閱讀我的評論。

If ViewState.Item("nameload").ToString = "True" Then // this is true 
     Getname(Me, New EventArgs) // Executed 
    ElseIf ViewState.Item("Getnameload").ToString = "True" Then // this is not executed and not attached to the handler 
     GetnameDetails(Me, New EventArgs) // not executed 
    Else 
+0

您的代碼不會編譯。 – user774411 2011-06-09 17:05:35

相關問題