2012-03-13 7 views
1

私は、ユーザーコントロールのマークアップ、ページに存在する他のusercontrolへの参照を渡す方法を探しています。この時点で私は、これは、コントロールの名前の文字列プロパティを持つやってるし、分離コードで、私はそれを得るためにFindControlを使用し、この方法:Asp .Net usercontrolがマークアップから他のusercontrolを参照しています

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

とサーバ側で:

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

私が知りたいのは、コントロールの名前を文字列に渡すのではなく、コントロール自体を「コントロール」プロパティに渡すより良い方法があるかどうかです。コントロールへの参照を直接持ち、回避しますFindControlを実行します。

+0

正確に達成したいもの> – Pankaj

+0

マークアップに設定するときは、シリアル化可能である必要があるため、設定しない場合は設定しないでください。しかしそれ以外の場合は問題ありません。プロパティ内のUserControl/Pageの別のコントロールへの参照をいつでも返すことができます。 –

+0

これは、ユーザーコントロールをシリアライズ可能にすることができると思います、ティム? – tomasofen

答えて

0

ページのコードの背後にあるコードで何が問題になっていますか?

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

私はOPがマークアップを介して参照したいコントロールを定義したいと思っています。 –

+0

はい、私はそれがコードの背後で行うことができますが、私はマークアップでそれを行う方法を探していた。とにかく、このアイデアをありがとう。 – tomasofen