我想动态创建一个modalpopup但我遇到了一个问题。我在这里贴了我的子,我不知道该怎么办。当我想要显示modalpopup时,它说 “类型'ModalPopupExtender'的控件'mdldelete2'必须放在带有runat = server的表单标签内。”我该如何解决这个问题?
Public Sub Raise_Alarm(ByRef p_Page As Page,
ByRef p_AssignedButton As System.Web.UI.WebControls.Button,
ByVal p_Message As String)
Dim mdldelete2 As Global.AjaxControlToolkit.ModalPopupExtender =
p_Page.Page.FindControl("mdldelete2")
If mdldelete2 Is Nothing Then
mdldelete2 = New Global.AjaxControlToolkit.ModalPopupExtender
End If
With mdldelete2
.TargetControlID = p_AssignedButton.ID
.PopupControlID = "pnlDelete"
.ID = "mdldelete2"
.BackgroundCssClass = "modalBackground"
.OkControlID = "btnDeleteOk"
.CancelControlID = "btnDeleteCancel"
End With
p_Page.Controls.Add(mdldelete2)
Dim mylabel As Label
mylabel = p_Page.FindControl("lblStatus")
mylabel.Text = p_Message
mdldelete2.Show()
End Sub
答案 0 :(得分:0)
实际上,您应该将mdldelete2
控件添加到Form控件的Controls
集合中,而不是直接添加到Page中 - 这可能有所帮助。
我经常发现为这种事情添加PlaceHolder控件更容易 - 它不会直接向页面添加任何内容,而是为您提供一个命名容器来查找和添加控件。
另外,只是一点 - 如果您确实使用Page.FindControl方法找到了控件的实例,那么您不需要再次将其添加到表单集合中,因为它已经在那里。
答案 1 :(得分:0)
看起来您需要将一个ScriptManager控件添加到aspx
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>