他の人が私と同じ振る舞いをするかどうかを知りたいだけです。
GridView を拡張する GridViewEx というクラスがあります。そのクラスのプロパティの 1 つに、注釈として Browsable(true) があります。これにより、(少なくとも IIS 7.5 より前では) マークアップでプロパティを設定できます。ただし、Windows 7 IIS 7.5 では、パーサー エラーが発生します。IIS 7.5 を搭載した Windows 2008 サーバーでは、アプリは正常に動作したことに注意してください。
したがって、Win7のIIS 7.5設定が台無しになっているのではないかと思っています。
再現する手順
a) 新しい ASP.Net アプリケーションを作成し、フレームワーク バージョンに 4.0 を使用します
b) GridViewEx という名前の新しいクラスを作成します (get/set は単なるダミー コードであり、重要ではありません)。
namespace GUI.Controls
{
public class GridViewEx : GridView
{
[Browsable(true)]
[Description("my test")]
public int VirtualItemCount
{
get
{
return 42;
}
set
{
int x = value;
int y = x + x;
}
}
}
}
c) Default.aspx で、タグ プレフィックスを登録します (WebApplication1 をプロジェクトの名前に変更します)。この行は、Page ディレクティブのすぐ下にある必要があります。
<%@ Register TagPrefix="common" Namespace="GUI.Controls" Assembly="WebApplication1" %>
d) Default.aspx で、これをコンテンツに追加します。
<common:GridViewEx runat="server" ID="gv" VirtualItemCount="-1">
</common:GridViewEx>
このアプリを IIS 7.0 以前で実行すると、エラーは発生しません。ただし、Win 7 IIS 7.5 では、次のエラーが発生します。
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: The 'VirtualItemCount' property cannot be set declaratively.
Win 7 IIS 7.5 でエラーが発生する理由がわかりませんが、以前の IIS バージョンでは発生せず、Win 2008 サーバー上の IIS 7.5 では発生しません。何か案は?