文字列型の MyProperty というプロパティを持つ DataControlField から継承するカスタム Web コントロールがあります。
GridView 列定義内でこれを試す場合:
<MyField MyProperty='<%# MyGlobalResources.TheResourceIWant %>' />
この結果が得られます:
パーサー エラー メッセージ: データバインディング式は、DataBinding イベントを持つオブジェクトでのみサポートされます。Query.Web.DynamicField には DataBinding イベントがありません。
MyGlobalResources は別のプロジェクトの resx ファイルであるため、明示的なローカリゼーション表記 (<%$ Resources: ResourceFile.ResourceName) を使用できません。
私が試したことは成功しませんでした:
- <%# の代わりに <%= を使用します。
- MyField.MyProperty を Bindable(true) でマークします。
何が欠けているか誰か知っていますか?
私が達成しようとしていることの簡単な説明:
コードから HeaderText プロパティを設定する必要があります。具体的には、webforms プロジェクト (同じソリューション内の別のプロジェクト) の外部のリソース ファイルから <%$ Resources:... は機能しません。
私が使用しようとしている表記法は、TemplateField 内 (つまり、ItemTemplate 内の LinkButton 内) でうまく機能します。
ありがとうございました。