代码之家  ›  专栏  ›  技术社区  ›  TheGeekYouNeed

以编程方式使用用户控件

  •  2
  • TheGeekYouNeed  · 技术社区  · 15 年前

    我有一个项目,其中我制作了两个用户控件:一个图例和一个图例项。

    在我的网页上,我正在检索要加载到LegendItem控件(设置基本文本和颜色信息)中的信息集合,然后将这些信息添加到我的Legend控件(Legend控件上有一个面板,我在网页上引用了Legend usercontrol)。

    我很难弄清楚如何正确地获取LegendItem控件的句柄,以便访问其属性并进行设置。

    我可以提供代码,如果你需要它来帮助-但我卡住了,需要一些帮助!感谢您抽出时间阅读此文章!

    4 回复  |  直到 15 年前
        1
  •  1
  •   lomaxx    15 年前

    理解动态控件的关键是理解页面生命周期。您需要确保在page_init事件期间创建控件,以确保在服务器端正确处理该控件。

    dynamic controls placeholder

        2
  •  1
  •   user113476 user113476    15 年前

    您可以使用LoadControl来实例化用户控件。

    
    LegendItem li = (LegendItem)LoadControl("LegendItem.aspx");
    li.name = "bob"
    legend.placeholder.controls.add(li);
    
        3
  •  0
  •   TheGeekYouNeed    15 年前

    这太奇怪了。除非给用户控件一个名称空间,否则我的aspx.cs页面将无法识别我的控件。现在我可以创建对象、正确地进行投射等等。

    谢谢大家的努力。

        4
  •  0
  •   mfeingold    15 年前

    我不知道你想做什么。如果您只需要将控件(静态)添加到页面中,请参见以下操作:

    <%@Page Language=“C#”%>

    <html>

    <表单runat=“server”>
    <uc:Spinner id=“Spinner 1” MinValue=“1” MaxValue=“10”/>
    </表格>
    </车身>

    现在,如果希望动态创建控件实例,则需要使用页面的LoadControl方法。此方法返回控件的实例,但要对其执行任何操作,需要将其添加到页面的控件集合中,如下所示:

    page.Controls.Add(mycontrol) .

    顺便说一句,我认为在服务器端做这种工作有点过时了。您最好使用JQuery之类的工具