从模态弹出窗口设置父窗体中的控件文本

时间:2012-03-28 07:21:56

标签: asp.net vb.net modalpopupextender

我有一个问题,我试图从模态弹出窗口设置父文本框。

虽然我使用以下代码从模态弹出窗口中找到了控件 DirectCast(Parent.Page.Form.FindControl("ContentPlaceHolder1").FindControl("myAccordion").FindControl("txtTo"), TextBox).Text = str

当用户完成从复选框列表中选择时,将在按钮单击时调用此方法。

当文本框为空时,再次显示父页面。

我的用户控制的场景是用户要从复选框列表中选择一个电子邮件列表。

点击完成后,需要将选定的电子邮件转发到父网页。

然后,在这种情况下,To Textbox将填充用户选择的电子邮件。

1 个答案:

答案 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