1
我有两个列表和一个事件接收器。事件接收器将列表中的列设置为唯一标识符(内容类型和项目标识符的组合)。 在另一个列表中,我使用查询字符串和newform将一个字段设置为上面相同的唯一标识符。我还收集了一些我希望与之合作的新形式的更多信息。需要找到一个SPItem而不知道项目的ID
如何在不知道ID的情况下查询列表,但我有另一个唯一的ID从其他项目中选出,因此我可以像下面的SPitem firstitem一样使用它,以便我可以找到其他字段。
让我的第一个项目,以获得独特称号:
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];
Dear Nat,我已经解决了这个问题,但你的回答是正确的。我所做的是让我完美的是在查询唯一项目后,我通过SPListItem item = itemCollection [0]选择了第一个(也是唯一一个)。 – regularroutine 2012-03-21 16:09:00