ドキュメントライブラリ、画像ライブラリ、フォームライブラリなどはフォルダが作成出来ますが、フォルダ階層を開いてアクセスした先の URL は凄く長くなっています。 これは、フォルダ階層部分をクエリーストリングのパラメータに展開されていることと、2バイト文字が含まれていると正規化 UTF-8 でエンコードされているからです。
2バイト文字1文字は正規化 UTF-8 でエンコードされると9文字になります。 (うげげ・・・)
・SharePoint Portal Server 2001 で、2 バイト文字コードを使用する場合の注意事項について
<http://www.microsoft.com/japan/sharepoint/server/support/dbcs.asp>
以前のバージョンに関する情報ですが、最初の方に、正規化 UTF-8 に関する説明があります。
ちょっと判り易い名前のフォルダ名階層を作ってしまうと簡単に URL が長くなります。 こんな時に、困るのはリストの「ハイパーリンクまたは画像」の列の文字列長制限です。
これを回避するアプローチとして、以下のようなものが考えられます。
- URL内のパラメータの削除
後ろの方に &View= が含まれている場合は、& 以降を削除する。 ビューを指定する必要が無い場合は削除しても問題無いです。 - ドキュメントライブラリのフォルダ名を1バイト文字化
単に2バイト文字の利用を止めるということです。 ちょっと安易ですが、確実な方法です。 - 物理パスでアクセス
ライブラリのフォルダは、実際には http://サーバー名/sites/サイトID/Shared%20Documents/フォルダ/サブフォルダ/ のような URL でもアクセス可能です。 この場合、クエリーストリングのパラメータではないので、漢字のままでも大丈夫です。
tags: SharePoint
ただいま、問題を抱えております。
その内容は、特定のリストの個人用ビューを作成する為のWebPartを作成しました。
ボタンをクリックで作成されます。
現在、管理者権限では、成功しているのですが
閲覧者や投稿者に「個人用ビューの管理」権限を割り振っているのにも関わらず
リソースへの権限が不足しているとエラーが表示されてしまいます。
管理ページから個人用ビューの追加を行うことは出来るのに
なぜ、コードからだと出来ないのか思案し、試行錯誤を試みたのですが
出来ませんでした。
妙案がありませんでしょうか?
何卒宜しくお願い致します。
private void btn_Click(object sender, EventArgs e)
{
SPWeb web = SPControl.GetContextWeb(this.Context);
SPList list = web.Lists[ListName];
list.Views.Add( ViewName, StringCollection, Query, 100, true, false, SPViewCollection.SPViewType.Html, true);
}
このWebパーツは、どこに組み込まれているのでしょうか?