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
什么我做错了谢谢
您的代码不会编译。 – user774411 2011-06-09 17:05:35