SharePointのWebServiceのを介してリストの内容をRetreiving 2003

SharePointサイトにLists.asmxにWebReferenceのを追加します。.

のhttp://localhostの/ _vti_bin / Lists.asmx
(SharePointの仮想ディレクトリのURL / _vti_bin / Lists.asmx

あなたのWeb​​サービスで次のメソッドを書く.

プライベートdata.DataTable GetDataTableFromWSS(ブール値onlySchema)
{
文字列WssSiteUrl = HTTP://192.168.111.21;
文字列WssSiteUrl = ConfigurationSettings.AppSettings[“WssSiteUrl”];
WssSite.Listsリスト=新しいWssSite.Lists();
lists.Url = WssSiteUrl + “_vti_bin / Lists.asmx”;
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;

lists.PreAuthenticate =真;
//あなたはここにリスト名を渡す必要があります
文字列をCommandText = “従業員の情報”;
のXmlNode = ListCollectionNodeのlists.GetListCollection();
XmlElementオブジェクトのリスト= (XmlElementオブジェクト)ListCollectionNode.SelectSingleNode(String.Formatの(“WSS:一覧[@タイトル='{0}"]”, CommandTextに), NameSpaceMgr);
ば (リスト== nullの)
{
新しいArgumentExceptionをスロー(String.Formatの(“一覧 {0} サイト内で見つかりませんでした {1}”, CommandTextに, WssSiteUrl));
}
文字列のTechListName = List.GetAttribute(“名”);
data.DataTableの結果=新しいdata.DataTable(“一覧”);
XmlNodeのノード=リスト案内lists.GetList(TechListName);
System.Text.StringBuilder fieldRefs =新しいSystem.Text.StringBuilder();
System.Collections.HashtableののDisplayNames =新しいSystem.Collections.Hashtableの();
foreachの (ListInfoNode.SelectNodesでXmlElement型のフィールド(“WSS:フィールド/ WSS:のフィールド”, NameSpaceMgr))
{
ば (Field.HasChildNodes)
{
foreachの (Field.SelectNodesでXmlElementのFLD(“WSS:フィールド/ WSS:のフィールド”, NameSpaceMgr))
{
文字列フィールド名= Fld.GetAttribute(“名”);
文字列FieldDisplayName = Fld.GetAttribute(“表示名”);
ば (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + フィールド名 + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(のフィールド));
fieldRefs.AppendFormat(“”, フィールド名);
DisplayNames.Add(FieldDisplayName, フィールド名);
}
}

{
文字列フィールド名= Field.GetAttribute(“名”);
文字列FieldDisplayName = Field.GetAttribute(“表示名”);
ば (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + フィールド名 + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(のフィールド));
fieldRefs.AppendFormat(“”, フィールド名);
DisplayNames.Add(FieldDisplayName, フィールド名);
}
}
ば (onlySchema) 結果を返す;
XmlElementのフィールドが= ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNodeを= ItemsNode lists.GetListItems(TechListName, “”, NULL, フィールド, “1000000”, NULL);
// ルックアップフィールドは、常に数値のIDで開始, その後、 ;# して、文字列表現.
// 我々は通常、名前だけで興味を持っている, 私たちはIDを取り除く.
System.Text.RegularExpressions.Regex ​​CheckLookup =新しいSystem.Text.RegularExpressions.Regex(“^ D ;#”);

foreachの (ItemsNode.SelectNodesでXmlElementのアイテム(“RS:日付/ Z:の行”, NameSpaceMgr))
{
data.DataRow NewRowを= result.NewRow();
foreachの (data.DataColumn COL result.Columns)
{
ば (Item.HasAttribute(“ows_” + (文字列)DisplayNames[col.ColumnName]))
{
文字列ヴァル= Item.GetAttribute(“ows_” + (文字列)DisplayNames[col.ColumnName]);
ば (CheckLookup.IsMatch((文字列)選挙))
{
文字列として文字列valString =ヴァル;
選択= valString.Substring(valString.IndexOf(“#”) + 1);
}
// または数字を期待しているフィールドに文字列を割り当てる
// datetime値は、それらを暗黙的に変換します。
NewRowを[と] =選択肢;
}
}
result.Rows.Add(NewRowを);
}
結果を返す;
}

// 以下の関数は名前空間を取得するために使用されます

プライベート静的れたXmlNamespaceManager _nsmgr;
プライベート静的れたXmlNamespaceManager NameSpaceMgr
{
取得
{
ば (_nsmgr == nullの)
{
_nsmgr =新しいXmlNamespaceManagerは(新しいNameTableを());
_nsmgr.AddNamespace(“WSS”, “のhttp://schemas.microsoft.com /共有ポイント/石鹸/”);
_nsmgr.AddNamespace(“と”, “UUID:BDC6E3F0 - 6DA3 - 11D1 - A2A3 - 00AA00C14882”);
_nsmgr.AddNamespace(“DT”, “UUID:C2F41010 - 65B3 - 11D1 - A29F-00AA00C14882”);
_nsmgr.AddNamespace(“RS”, “つぼ:スキーマ - マイクロソフト - com:行セット”);
_nsmgr.AddNamespace(“中”, “#RowsetSchema”);

}
_nsmgrを返す;
}
}
プライベートタイプTypeFromField(XmlElementオブジェクトのフィールド)
{
スイッチは (field.GetAttribute(“タイプ”))
{
の場合 “日時”:
typeofを返す(日時);
の場合 “整数”:
typeofを返す(int型);
の場合 “数”:
typeofを返す(フロート);
デフォルトの:
typeofを返す(文字列);
}
}

4 SharePointのWebServiceのを介してRetreivingリストのコンテンツへのコメント 2003

  • noreply@blogger.com (弾丸)

    このコードでオブジェクトをWssSite, 私はこの上のエラーを取得しています, “あなたは、usingディレクティブまたはアセンブリ参照が不足している?” 任意のアイデア

  • noreply@blogger.com (ウダイ)

    こんにちはバラ,
    WssSiteはlists.asmx用WebReferenceのです。

    乾杯,
    ウダイ

  • noreply@blogger.com (ジャヤのドリル)

    優れ. 感謝ウダイ. あなたの投稿のおかげで、移行プロジェクトで多くの時間を節約できました 🙂

  • noreply@blogger.com (ウダイ)

    あなたは、ジャヤを歓迎している

返信コメントを残す

使用することができます これらのHTMLタグ

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>