我有一个用户控件已被动态添加到页面。当我点击用户控制按钮:用户控件按钮单击事件未提升
- 的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