質問

MOSS 2007で構築された発行Webサイトがあり、プログラムでページコンテンツを取得する必要があります。WebClientを使用してページにリクエストを送信し、応答テキストを解析できることを知っています。ただし、規模が非常に大きいため、SharePointモデルで実行したいと思います。

レンダリングしたいWebパーツはDataFormWebPartであり、ブラウザーで表示すると正常に表示されます。しかし、プログラムでレンダリングしようとすると例外が発生します。

コード: ジェネラコディセタグプレ

出力: ジェネラコディセタグプレ

出力でわかるように、beginタグはレンダリングされますが、part.Pagenullであり、読み取り専用属性であるため、コントロールをレンダリングできません。

役に立ちましたか?

解決

これは機能しません。Webパーツには、ASP.NETパイプラインでのHTTP要求処理中に設定される適切なSPContextが必要です。それを克服する方法は簡単な答えはありません。基本的に、メモリ内にレンダリングする必要があるページへのHTTPリクエストをシミュレートする必要があります。


また、この表現part.GetType() == new DataFormWebPart().GetType()は理想からはほど遠いです。むしろ、part.GetType() == typeof(DataFormWebPart)を使用して、インスタンス化や望ましくない副作用の可能性を防ぎます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top