控制中的参考控制

时间:2014-03-05 05:31:42

标签: asp.net ajaxcontroltoolkit

我有一个自定义的ASP.NET控件(.ascx文件)。 此控件包含一些标签/文本框/等。以及“确定”和“取消”按钮。

我想使用AJAX Control Toolkit ModalPopup控件弹出我的自定义控件,让用户与它进行交互,完成后按确定/取消。

ModalPopup控件具有OkControlIDCancelControlID属性,可以告诉弹出窗口何时关闭。

如何在自定义控件中引用“确定/取消”按钮?

我尝试向我的控件添加属性,返回按钮然后使用点符号,但这似乎不起作用。以下是基本概要:

自定义控制代码(部分):

public Button OkButton
{
    get { return this.btnOk; }
    set { }
}

主页:

<!-- This button should trigger the popup -->
<asp:Button ID="btnEdit" runat="server" Text="Edit" />

<!-- AJAX Control Toolkit ModalPopup control ( -->
<asp:ModalPopupExtender 
    ID="btnEdit_ModalPopupExtender" 
    runat="server" 
    TargetControlID="btnEdit" 
    PopupControlID="ctlBasic"
    OkControlID="ctlBasic.OkButton" >
</asp:ModalPopupExtender>

<!-- This is my custom control that should be popped up -->
<uc1:ctlBasic ID="ctlBasic" runat="server" />

我的目标是能够插入我的自定义控件,而无需父母提供任何其他代码。

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

不要让属性返回Button,而是让它返回按钮的ID,如下所示。

public String OkButtonID
{
    get
    {
        return this.btnOk.ID;
    }
}

然后在modalpopupextender的aspx标记中进行更改,如下所示。

<!-- AJAX Control Toolkit ModalPopup control ( -->
<asp:ModalPopupExtender 
    ID="btnEdit_ModalPopupExtender" 
    runat="server" 
    TargetControlID="btnEdit" 
    PopupControlID="ctlBasic"
    OkControlID="ctlBasic.OkButtonID" >
</asp:ModalPopupExtender>

值得一试!

答案 1 :(得分:0)

OKControlIDCancelControlID并非真正需要。如果您想指定它们,可以使用下划线,YourUserControlID_ButtonIDInUserControl

请注意,您无需公开控制用户。