1
我在链接按钮上动态添加事件处理程序,首先在页面加载时创建一个包含产品类别的链接按钮。在点击产品类别时,它会触发一个事件并传递产品ID IN发件人对象。动态添加事件处理程序
这里是我的问题:当我重新进行添加在页面加载事件处理它给了一个错误cannot cast sender object
代码:
sub page int
Me.Page.EnableViewState = True
end sub
page load
CatDisplay()
If ViewState("GetProductClicked") = True Then
GetProduct(Me, New EventArgs)
End If
Function CatDisplay() As Boolean
Dim arr As New ArrayList
Dim objTesting As New Bo_Dall_Layer.BoCategory
arr = objTesting.GetAllCategory()
Dim objExtra As Bo_Dall_Layer.BoCategory
Dim Cat_hyperLink As LinkButton
For Each objExtra In arr
Cat_hyperLink = New LinkButton
Cat_hyperLink.Text = objExtra.CategoryName
Cat_hyperLink.CommandArgument = objExtra.CategoryId
AddHandler Cat_hyperLink.Click, AddressOf GetProduct
CatPanel.Controls.Add(New LiteralControl("<br />"))
CatPanel.Controls.Add(Cat_hyperLink)
Next
ViewState.Item("CategoryLoaded") = False.ToString
End Function
Private Sub GetProduct(ByVal sender As Object, ByVal e As EventArgs)
Dim arrCollectList As New ArrayList
Dim getLinkDetail As LinkButton = CType(sender, LinkButton)
Dim getCatID As String = getLinkDetail.CommandArgument
Dim SendCatID As Integer
SendCatID = CInt(getCatID)
Dim objGetProduct As New Bo_Dall_Layer.BoProduct
arrCollectList = objGetProduct.getSelectProduct(SendCatID)
Dim objTemCollectPrd As Bo_Dall_Layer.BoProduct
Dim lblPrdName As Label
Dim lblPrdDes As Label
Dim lblPrdPrice As Label
Dim addCart As LinkButton
For Each objTemCollectPrd In arrCollectList
lblPrdName = New Label
lblPrdDes = New Label
lblPrdPrice = New Label
addCart = New LinkButton
getCatID = objTemCollectPrd.ProductId
PrdName.Controls.Add(New LiteralControl("<br />"))
lblPrdName.Text = objTemCollectPrd.ProductName
PrdName.Controls.Add(New LiteralControl("<br />"))
PrdDesc.Controls.Add(New LiteralControl("<br />"))
lblPrdDes.Text = objTemCollectPrd.ProductDescription
PrdDesc.Controls.Add(New LiteralControl("<br />"))
lblPrdPrice.Text = objTemCollectPrd.ProductPrice
PrdPrice.Controls.Add(New LiteralControl("<br />"))
lblPrdPrice.Text = objTemCollectPrd.ProductPrice
PrdPrice.Controls.Add(New LiteralControl("<br />"))
PrdCart.Controls.Add(New LiteralControl("<br />"))
addCart.Text = "Add to Cart"
addCart.CommandArgument = objTemCollectPrd.ProductId
PrdCart.Controls.Add(New LiteralControl("<br />"))
PrdName.Controls.Add(lblPrdName)
PrdDesc.Controls.Add(lblPrdDes)
PrdPrice.Controls.Add(lblPrdPrice)
PrdCart.Controls.Add(addCart)
Next
ViewState.Item("GetProductClicked") = True
End Sub
当页面重新加载它给我一个错误或
无法转换类型 'ASP.products_aspx' 的目的为类型 'System.Web.UI.WebControls.LinkButton' 昏暗getLinkDetail作为的LinkButton = CTYPE(发件人,LinkButton的)
@Aristos:至少需要15个代表upvote:http://meta.stackexchange.com/questions/41347/why-is-15-reputation-required-to-upvote但OP应该接受答案,应该多提出一些清晰的问题。 – 2011-06-15 11:48:43
@Tim谢谢你的提示。 – Aristos 2011-06-15 17:43:15