Retreiving فهرست محتوا از طریق WebService در شیرپوینت 2003

اضافه کردن به webreference Lists.asmx به سایت شیرپوینت.

http://localhost / _vti_bin / Lists.asmx
(شیرپوینت مجازی فهرست آدرس ها / _vti_bin / Lists.asmx

نوشتن روش های زیر را در webservice شما.

خصوصی 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);
اگر (فهرست == تهی)
{
پرتاب ArgumentException جدید(String.Format(“فهرست {0} می تواند در سایت یافت نشد {1}”, CommandText, WssSiteUrl));
}
رشته TechListName = List.GetAttribute(“نام”);
نتیجه data.DataTable = جدید data.DataTable(“فهرست”);
گره XmlNode = listinfo lists.GetList(TechListName);
fieldRefs System.Text.StringBuilder = جدید System.Text.StringBuilder();
DisplayNames System.Collections.Hashtable = جدید System.Collections.Hashtable();
foreach (فیلد XmlElement در ListInfoNode.SelectNodes(“wss:زمینه / wss:رشته”, NameSpaceMgr))
{
اگر (Field.HasChildNodes)
{
foreach (XmlElement Fld در Field.SelectNodes(“wss:زمینه / wss:رشته”, NameSpaceMgr))
{
رشته FieldName = Fld.GetAttribute(“نام”);
رشته FieldDisplayName = Fld.GetAttribute(“DisplayName”);
اگر (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(رشته));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
دیگر
{
رشته FieldName = Field.GetAttribute(“نام”);
رشته FieldDisplayName = Field.GetAttribute(“DisplayName”);
اگر (result.Columns.Contains(FieldDisplayName))
{
FieldDisplayName = FieldDisplayName + ” (” + FieldName + “)”;
}
result.Columns.Add(FieldDisplayName, TypeFromField(رشته));
fieldRefs.AppendFormat(“”, FieldName);
DisplayNames.Add(FieldDisplayName, FieldName);
}
}
اگر (onlySchema) نتیجه بازگشت;
زمینه های XmlElement = ListInfoNode.OwnerDocument.CreateElement(“ViewFields”);
fields.InnerXml = fieldRefs.ToString();
XmlNode ItemsNode = lists.GetListItems(TechListName, “”, تهی, زمینه, “1000000”, تهی);
// زمینه های گرین کارت آمریکا همیشه با شناسه عددی شروع, سپس ;# و پس از آن نمایش رشته.
// ما به طور معمول فقط در نام علاقه مند, تا آیدی ما نوار.
System.Text.RegularExpressions.Regex CheckLookup System.Text.RegularExpressions.Regex = جدید(“^ د;#”);

foreach (در مورد XmlElement ItemsNode.SelectNodes(“تومان:تاریخ / الف:ردیف”, NameSpaceMgr))
{
data.DataRow newRow result.NewRow =();
foreach (data.DataColumn result.Columns ستون)
{
اگر (Item.HasAttribute(“ows_” + (رشته)DisplayNames[col.ColumnName]))
{
وال رشته = Item.GetAttribute(“ows_” + (رشته)DisplayNames[col.ColumnName]);
اگر (CheckLookup.IsMatch((رشته)انتخاب))
{
رشته valString وال = عنوان رشته;
انتخاب valString.Substring =(valString.IndexOf(“#”) + 1);
}
// تعیین رشته کاراکتر را به یک میدان است که انتظار دارد که تعداد و یا
// حسگر ناحیه رنگی یک ارزش به طور ضمنی آنها را تبدیل
newRow[با] = انتخاب;
}
}
result.Rows.Add(newRow);
}
نتیجه بازگشت;
}

// از تابع زیر استفاده می شود برای دریافت فضاهای نامی

خصوصی _nsmgr XmlNamespaceManager استاتیک;
خصوصی استاتیک XmlNamespaceManager NameSpaceMgr
{
دریافت
{
اگر (_nsmgr == تهی)
{
_nsmgr = جدید XmlNamespaceManager(جدید NameTable());
_nsmgr.AddNamespace(“wss”, “http://schemas.microsoft.com / شیرپوینت / صابون /”);
_nsmgr.AddNamespace(“با”, “UUID:BDC6E3F0 - 6DA3 - 11d1 - A2A3 - 00AA00C14882”);
_nsmgr.AddNamespace(“دردوران بارداری”, “UUID:C2F41010 - 65B3 - 11D1 - A29F-00AA00C14882”);
_nsmgr.AddNamespace(“تومان”, “کوزه:طرحواره - مایکروسافت کام:rowset”);
_nsmgr.AddNamespace(“از”, “#RowsetSchema”);

}
_nsmgr بازگشت;
}
}
خصوصی نوع TypeFromField(زمینه XmlElement)
{
گزینه (field.GetAttribute(“نوع”))
{
مورد “حسگر ناحیه رنگی یک”:
بازگشت typeof(حسگر ناحیه رنگی یک);
مورد “عدد صحیح”:
بازگشت typeof(دانشنامه هوشمند);
مورد “شماره”:
بازگشت typeof(شناور);
پیش فرض:
بازگشت typeof(رشته);
}
}

4 نظر به Retreiving فهرست محتوا از طریق WebService در شیرپوینت 2003

پاسخی بنویسید

شما می توانید استفاده کنید از تگ های اچ

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