1

ページにユーザー コントロールがあります。ユーザー コントロールには、ボタンのクリック後に設定する必要があるパブリック プロパティがあります。これどうやってやるの?ボタン クリック イベントが発生する前にコントロールがレンダリングされるように見えるため、プロパティを設定しても効果はありません。

ページ: <%@ 登録 src="Email.ascx" tagname="Email" tagprefix="uc2" %>

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
        EmailList.IsEditable = false;
}

protected void btn_Click(object sender, EventArgs e)
{
    EmailList.IsEditable = true;
}

ユーザー コントロール: public bool IsEditable { get; 設定; }

パブリック プロパティは、ページ読み込みイベントで設定すると正しく設定されますが、ボタン クリックでは設定されません。このボタンは、フォームを読み取り専用から編集モードに変更するために使用されます。ボタン クリック イベントでパブリック プロパティを設定する方法はありますか? もしそうなら、どのように?

4

1 に答える 1

1

プロパティはうまく設定されています。問題は、ユーザーコントロールのどこでコントロールを読み取り専用/有効に設定するかです。

ユーザーコントロールのレンダリング方法に影響を与えたい場合は、ユーザーコントロールのPage_PreRenderイベントでサブコントロールの読み取り専用/有効なプロパティを設定するロジックを実行する必要があります。このイベントは、buttonclick イベントの後に実行されます。

msdn: the page lifecycleを読む必要があります。Page_Loadコントロール イベントが afterと before で処理されることに気付くでしょうPage_LoadComplete

于 2013-02-06T22:44:08.927 に答える