【问题标题】:Get custom controls parent update panel获取自定义控件父更新面板
【发布时间】:2013-03-02 20:43:14
【问题描述】:

我正在创建一个自定义服务控件(扩展复合控件)。我希望这个控件使用更新面板,但我认为最好要求用户将我的控件放在他们自己的更新面板中,而不是我将它编码到我的控件中。我的问题分为两部分:

  1. 如何提醒正在使用我的控件的开发人员需要将控件放入更新面板中

  2. 在我的服务器代码中,如何获取用户控件所在的更新面板 ID 的句柄?

感谢您的任何见解。

编辑:这是我的代码设置方式:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
   <ContentTemplate>   
      <cc3:myServerControl id="activerDirectorySearch1" runat="server"  />
   </ContentTemplate>
</asp:UpdatePanel>

所以,因为我的用户控件不知道 udpate 面板的名称(而且我不想对其进行硬编码),所以我想找到一种方法让服务器控件获取其父 ID。但是,如果我使用 parent.id,我只会返回网页名称。

杰森

【问题讨论】:

    标签: asp.net vb.net updatepanel servercontrols


    【解决方案1】:
    1. 您可以从您的控制中公开public property UpdatePanelID

    2. 如果用户不提供 UpdatePanelID,则抛出异常。

    在 ASP.Net ListView 的ContentPlaceHolderID 中使用了相同的想法

    【讨论】:

    • 感谢您的回复。如果可能的话,我希望有一种方法可以以编程方式获取更新面板以消除用户错误。不过,你是对的。如果我获得了 ID,我可以尝试使用该 ID 进行强制转换,如果失败则作为自定义异常抛出
    • 实际上,我什至不认为我可以向用户询问更新面板 ID,因为 .Net 为这些控件分配了用户可能不知道的唯一 ID。 IE:他们可能将 UP 命名为“UpdatePanel1”,但实际上名称可能是:UserControl1_UpdatePanel
    • ListViewContentPlaceHolderID 是在设计时设置的。查看它的源代码。
    猜你喜欢
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 2011-04-19
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多