2012-03-13 66 views
1

我正在寻找一种方法来传递用户控件的标记,对页面中存在的其他用户控件的引用。这时我这样做是具有与该控件的名称的字符串属性,并在代码隐藏我使用的FindControl得到它,这样说:Asp .Net用户控件引用其他用户控件从标记

<uc2:ctlMyControl ID="MyControl1" runat="server" 
     ReferencedControl="TheIdOfOtherControlInThePage" /> 

而在服务器端:

public string mvarReferencedControl= ""; 
    public string ReferencedControl { 
    get 
    { 
     return mvarReferencedControl; 
    } 
    set 
    { 
     mvarReferencedControl = value; 
    } 
    } 

我想知道的是,如果有更好的方法来做到这一点,不传递字符串与控制的名称,但控制本身在“控制”属性,所以我直接参考控制和避免做FindControl。

+0

究竟要实现什么?> – Pankaj 2012-03-13 18:37:39

+0

不是当你想在标记中设置它,因为它必须是可序列化的。但否则这没有问题。您可以随时返回对属性中UserControl/Page的另一个控件的引用。 – 2012-03-13 18:39:39

+0

所以你认为它可以使用户控件可序列化,蒂姆? – tomasofen 2012-03-13 22:49:27

回答

0

在页面背后的代码中做什么错?

((MyControl)MyControl1).ReferenceControl = theOtherControl; 
+0

我假设OP想要通过标记来定义他想要引用的控件。 – 2012-03-13 18:42:29

+0

是的,我知道它可以在代码后面完成,但我正在寻找一种在标记中实现它的方法。无论如何感谢这个想法。 – tomasofen 2012-03-13 22:45:50

相关问题