我有一個用戶控件已被動態添加到頁面。當我點擊用戶控制按鈕:用戶控件按鈕單擊事件未提升
- 的button_click事件沒有被提出
- 回
- 用戶控件從頁面
這裏移除頁面職位的按鈕在我的用戶控件上點擊事件:
Protected Sub btnAddAttribute_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddAttribute.Click
Try
Dim attrName As String = txtAddAttributeName.Text
Dim attrValue As String = txtAddAttributeValue.Text
'ADD ATTRIBUTE TO ATTRIBUTE TABLE
putSQLData("INSERT INTO OD_Attribute_Values (AttributeName, AttributeValue) VALUES('" & attrValue & "', '" & attrName & "'")
'ADD ATTRIBUTE TO PRODUCT DATA FOR THIS PRODUCT
putSQLData("UPDATE OD_Product_Data SET VariantMapping = VariantMapping + ' | " & attrName & ":" & attrValue & "' WHERE SKU = '" & SelectedSKU & "'")
'ADD NEW ctrlAttribute TO PARENT PLACEHOLDER AND SET VALUES
Dim newAttr As New AttributeControl
newAttr.AttributeName = attrName
newAttr.AttributeValue = attrValue
Page.Controls.AddAt(Page.FindControl("phAttributes").ClientID, newAttr)
'REMOVE THIS CONTROL FROM PARENT PLACEHOLDER
Me.Dispose()
Catch ex As Exception
Common.SendError(ex.Message, "AttributeControl.btnAddAttribute_Click")
End Try
End Sub
這裏是動態添加控件:
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
'WEB TAB
getAttributes()
End Sub
Protected Sub getAttributes()
Try
Dim attr As String = ""
Dim attrName As String = ""
Dim attrValue As String = ""
Dim ds As DataSet = getSQLData("SELECT VariantMapping FROM OD_Product_Data WHERE SKU='" & selectedSKU & "'")
For Each dr As DataRow In ds.Tables(0).Rows()
attr = dr(0).ToString
Next
ds = Nothing
Dim attrArr As Array = attr.Split("|")
For Each item As String In attrArr
Dim attrDetail As Array = item.Split(":")
attrName = attrDetail(0)
attrValue = attrDetail(1)
Dim ctrlAttributes As AttributeControl = LoadControl("ctrlAttribute.ascx")
ctrlAttributes.AttributeName = attrName
ctrlAttributes.AttributeValue = attrValue
ctrlAttributes.ID = "ctrlAttribute-" & attrName
phAttributes.Controls.Add(ctrlAttributes)
Next
Catch ex As Exception
SendError(ex.Message, "Default.getAttributes")
End Try
End Sub
Protected Sub btnAddAttribute_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddAttribute.Click
Dim ctrlAttributes As AttributeControl = LoadControl("ctrlAttribute.ascx")
ctrlAttributes.ID = "ctrlAttribute" & phAttributes.Controls.Count + 1
phAttributes.Controls.Add(ctrlAttributes)
End Sub
Protected Sub btnCreateAttribute_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCreateAttribute.Click
Dim ctrlAddAttribute As AddAttributeControl = LoadControl("ctrlAddAttribute.ascx")
ctrlAddAttribute.SelectedSKU = selectedSKU
ctrlAddAttribute.ID = "ctrlAddAttribute" & phAttributes.Controls.Count + 1
phAttributes.Controls.Add(ctrlAddAttribute)
End Sub
發佈你的代碼會有幫助,這好像是事件處理程序沒有正確設置或PostBack導致意外的行爲 – kd7 2010-11-04 18:29:02
出於好奇,你爲什麼在代碼註釋中尖叫? – 2010-11-04 18:40:44
您是否確定您的控件在頁面重新加載後仍然存在。就像Random說的那樣,看到控件被調用的代碼會更有幫助。 – Lareau 2010-11-04 18:45:41