1

タイトルは、私が探しているものをほぼ要約しています。ContentByQueryWebPart から派生する、SharePoint 2010 ソリューション用のカスタム WebPart を Visual Studio 2010 で作成しました。WebPart の目的は、複数のタスク リストから取得した自分のタスクの概要をユーザーに示すことです。これまでのところ問題はありません。

ただし、(Page.Request を使用して) url-query からいくつかのデータを取得してカスタム フィルタリング、グループ化、および並べ替えを行うために、OnInit-Method をオーバーライドしました。問題は、カスタム CQWP が作成した CAML 文字列を取得しないことです。

すでにいくつかのアプローチを試しましたが、どれもうまくいかないようでした。それも最小限に抑えました。QueryOverride を設定した場所が間違っている可能性があります。(OnInit / OnLoad / base.On****(e); の前または後; ?) 今のところ、次のようになります。

protected override void OnInit(EventArgs e)
{
    string query = "<Query><Where><Eq><FieldRef Name=\"AssignedTo\" /><Value Type=\"User\"><UserID /></Value></Eq></Where></Query>";
    this.QueryOverride = query;
    base.OnInit(e);
}

誰かがアイデアを持っていることを願っています。どんな助けでも感謝します。それでも不明な点があれば、遠慮なく質問してください。

マルクス・シュワルベ

注: 英語は私の第一言語ではありません。:)

4

1 に答える 1

0

私はこれを行うための解決策を見つけました。UserIDタグを値として使用したくないようです。

現在の(または他の)SPUserオブジェクトのName属性を使用し、値のタイプを「Text」に変更すると、魅力のように機能します。(また、Queryタグをそのままにして、「 'に置き換えてください。これはちょっときれいに見えます)

this.QueryOverride = "<Where><Eq><FieldRef Name='AssignedTo' /><Value Type='Text'>" + SPContext.Current.Web.CurrentUser.Name + "</Value></Eq>";

これが同じ問題を抱えている人に役立つことを願っています。心から、

マルクスシュワルベ

于 2011-03-29T09:17:27.733 に答える