最近、ユーザー コントロールの asp:button で可視プロパティを設定しても、ユーザー コントロールのパブリック プロパティを介して設定するとうまくいかないことがわかりました (ユーザー コントロールで Visible プロパティが正しく更新されないのはなぜですか? を参照してください)。パブリック プロパティを使用して Web コントロール プロパティを設定することに慣れていますが、ユーザー コントロールの Web コントロール プロパティを設定するための標準またはベスト プラクティスはありますか?
これは私のコードの簡略版です:
public partial class MyUserControl: System.Web.UI.UserControl
{
public bool IsVisible
{
set{MyButton.Visible = value;}
}
protected void Page_PreRender(object sender, EventArgs e)
{
if (MyButton.Visible)
{
trButtons.Visible = true;
//do something
//MyButton.Visible is always false, even when it is assigned true thru the
//public property above, when the <tr> element in the form has Visible = "false"
}
}
}
デザイナー
<table>
<tr runat="server" id="trButtons" visible="true">
<td>
<asp:Button ID="MyButton" runat="server" Text="The Button" />
</td>
</tr>
</table>