1

コード ビハインドにパブリック プロパティがあり、それを .aspx ページのコントロールにバインドします。使用するPage.DataBind()と機能しますが、すべてのコントロールに再帰的なデータバインドが発生するため、これを使用したくありません。

Page.DataBind() に、再帰的に呼び出すかどうかを示すブール値を受け入れるオーバーロードされたメソッドがあったとしても、それはより良いオプションでしたが、現時点では再帰のためにパフォーマンスが低下するだけです。

私の唯一の目的は、分離コード ページの公開/保護されたプロパティを .aspx ページにバインドすることです。より良い代替手段はありますか?

4

2 に答える 2

3

あなたのバインディングコードは次のようなものだと思います

<%# MyProperty %>

この種のバインドは、 を呼び出した場合にのみ発生しますPage.DataBind()が、次のように記述した場合:

<%= MyProperty %>

それなら電話しなくていいPage.DataBind()

于 2012-08-01T13:47:06.270 に答える
2

受け入れられた回答は、値の単純な表示には機能しますが、サーバータグでデータバインドされた値を使用する場合には機能しません。

<asp:Literal Visible='<%# IsNewApplication %>' runat="server">New Application</asp:Literal>

これを回避するために私が見つけた唯一の方法は、PlaceHolderコントロールを使用してバインド可能なタグのブロックを分離DataBind()し、PlaceHolder.

コードで可視性を設定するだけでなく、これが多かれ少なかれ醜い/適切であるかどうかを判断するのはあなた次第です!

于 2012-08-23T12:35:52.970 に答える