Нужно найти SPItem, не зная ID предмета - PullRequest
1 голос
/ 17 марта 2012

У меня есть два списка и один получатель событий. Получатель события устанавливает в столбце списка уникальный идентификатор (комбинация типа содержимого и идентификатора элемента). В другом списке я использую строку запроса и новую форму, чтобы задать для поля тот же уникальный идентификатор, что и выше. Я также собираю дополнительную информацию в этой новой форме, с которой я хочу работать.

Как я могу запросить список, не зная идентификатора, но у меня есть другой уникальный идентификатор, который можно выделить из других элементов, чтобы я мог работать с ним так же, как в первом пункте SPitem, чтобы найти другие поля.


Получение моего первого предмета, чтобы получить уникальный заголовок:

SPSite currentSite = SPContext.Current.Site;
SPWeb web = currentSite.OpenWeb();

string queryString = Request.QueryString["uniqueID"];
SPList firstList = web.Lists["My First List"];
SPItem firstItem = firstList.Items.GetItemById(Convert.ToInt32(queryString));

это уникальный заголовок, с которым я хочу запросить второй список:

string uniqueTitle = firstItem["Title"].ToString();

готовлю мой второй список, готовый к действию:

SPList secondList = web.Lists["My Second List"];

Спасибо


ОТВЕТ:

// open the second list
SPList secondList = web.Lists["My Second List"];

// Query the second list for the item
SPQuery myQuery = new SPQuery();
myQuery.Query = "<Where><Eq><FieldRef Name = \"Title\"/>" +
"<Value Type = \"Text\">" + uniqueTitle +
"</Value></Eq></Where>";

// Get a collection of the second list items selected by the query and pick the first (0) value as it should only return one!
SPListItemCollection secondlistItemCol = secondList.GetItems(myQuery);
SPListItem secondItem = secondlistItemCol[0];

1 Ответ

2 голосов
/ 19 марта 2012

Вы захотите использовать команду GetItems с объектом SPQuery .Не так сложно разобраться с примером кода MS ниже.

using System;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite site = new SPSite("http://localhost"))
         {
            using (SPWeb web = site.OpenWeb())
            {
               // Build a query.
               SPQuery query = new SPQuery();
               query.Query = string.Concat(
                              "<Where><Eq>",
                                 "<FieldRef Name='Status'/>",
                                 "<Value Type='CHOICE'>Not Started</Value>",
                              "</Eq></Where>",
                              "<OrderBy>",
                                 "<FieldRef Name='DueDate' Ascending='TRUE' />",
                                 "<FieldRef Name=’Priority’ Ascending='TRUE' />", 
                              "</OrderBy>");                    

               query.ViewFields = string.Concat(
                                   "<FieldRef Name='AssignedTo' />",
                                   "<FieldRef Name='LinkTitle' />",
                                   "<FieldRef Name='DueDate' />",
                                   "<FieldRef Name='Priority' />");

               query.ViewFieldsOnly = true; // Fetch only the data that we need.

               // Get data from a list.
               string listUrl = web.ServerRelativeUrl + "/lists/tasks";
               SPList list = web.GetList(listUrl);
               SPListItemCollection items = list.GetItems(query);

               // Print a report header.
               Console.WriteLine("{0,-25}  {1,-20}  {2,-25}  {3}",
                  "Assigned To", "Task", "Due Date", "Priority");

               // Print the details.
               foreach (SPListItem item in items)
               {
                  Console.WriteLine("{0,-25}  {1,-20}  {2,-25}  {3}",
                     item["AssignedTo"], item["LinkTitle"], item["DueDate"], item["Priority"]);
               }
            }
         }
         Console.ReadLine();
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...