メインページの2つのラベルに名前と姓を保存しています。クラスにもこれらの値があります(クラスはあまり機能しませんが、将来の拡張に使用しています)。名前と姓を本文としてメールを送信するユーザーコントロールがあります。
私の質問は、ラベルまたはクラス変数の値をユーザーコントロールの本体変数に転送するにはどうすればよいですか?
渡すデータのデータ型を使用してユーザーコントロールにプロパティを作成し、コントロールの作成時にページに入力します。
public class myUserControl : Control
{
...
public int myIntProperty {get; set;}
...
}
後でコードビハインドで次のような値を割り当てることができます
myUserControl cntrl = new myUserControl();
cntrl.myIntProperty = 5;
これの代わりに、次のようにマークアップを介して値を渡すこともできます
<uc1:myUserControl ID="uc1" runat="server" myIntProperty="5" />
コントロールでパブリックプロパティを定義する必要があります。その後、ページでコントロールを使用するときに、それらのパラメーターに値を渡すことができます。
何かのようなもの:
<cc:mycustomControl runat="server"
MyProperty1=<%# label1 %>
MyProperty2=<%# label2 %>
/>
これらの値を保持するには、コントロールにプロパティを作成する必要があります。次に、ページコードから、コントロールのプロパティに値を割り当てるだけです。
あなたのコントロールで、あなたは次のようなものを持つことができます
public string FirstName
{
get {
if (ViewState["FirstName"] == null)
return string.Empty;
return ViewState["FirstName"].ToString();
}
set {
ViewState["FirstName"] = value;
}
}
ステップ1:値をプロパティとして転記することができ、それを簡単に利用することができます。
ステップ2:ユーザーコントロールからページにアクセスするには、Parent
プロパティを使用するか、カスタムログインして親ページにアクセスし、プロパティ値を使用するコードを記述します。 。
ユーザーコントロールでこのようなことを行うことができます
string x=((yourparentcontrol)this.parent).label1.text;
文字列x
を使用します。