我有一个问题,我试图从模态弹出窗口设置父文本框。
虽然我使用以下代码从模态弹出窗口中找到了控件
DirectCast(Parent.Page.Form.FindControl("ContentPlaceHolder1").FindControl("myAccordion").FindControl("txtTo"), TextBox).Text = str
当用户完成从复选框列表中选择时,将在按钮单击时调用此方法。
当文本框为空时,再次显示父页面。
我的用户控制的场景是用户要从复选框列表中选择一个电子邮件列表。
点击完成后,需要将选定的电子邮件转发到父网页。
然后,在这种情况下,To Textbox将填充用户选择的电子邮件。
答案 0 :(得分:0)
您应在UserControl
中为ListBox
中的所选项目提供公共财产。这样可以轻松地从页面中检索(或设置)它。
您还应声明可以从ListBox'SelectedIndexChanged
事件中引发的事件。通过这种方式,页面能够处理此事件并相应地设置TextBox'文本。
例如(在带有ModalPopupExtender
的UserControl中):
Public Class PopupControl
Inherits System.Web.UI.UserControl
Public Event ItemChanged(ByVal popup As PopupControl)
Public Property SelectedItem As String
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim lb = DirectCast(sender, ListBox)
Me.Visible = False
Me.SelectedItem = lb.SelectedItem.ToString()
RaiseEvent ItemChanged(Me)
End Sub
End Class
在页面中:
Protected Sub PopupItemChanged(ByVal popup As PopupControl)Handles PopupControl1.ItemChanged
Me.txtTo.Text = popup.SelectedItem
End Sub