情景
我很难自己解决这个问题,而且通过我所做的所有研究,我无法找到一个不会让我更加困惑的答案。
我有一个radDataGrid,其中包含SharePoint 2010 List中的项目,这些项目使用超链接按钮字段填充到列表ID。点击按钮,子窗口会出现一个包含许多字段的自定义表单。我成功地将ID传递给子窗口。现在,子窗口需要获取ID并将其用于GetItemById回到SharePoint列表以收集该项目的字段并加载到我的字段中。我的表格中有几种类型的字段;文本框,单选按钮;组合框。
这完全是通过客户对象模型。
问题
在尝试了一切之后,我不知道从哪里开始。例如,我研究了很多次CamlQuery并将其作为一个lookupID类型的Integer并与我的文本字段进行比较,其中来自raddataGrid的ID。然后我执行查询并尝试获取列表中某个字段的值以填充我的textbox.text。那是不成功的。然后我测试了查询是否正在运行并显示带有ID的MessageBox。这很成功,但这并不能告诉我我的查询是否正常工作。
接下来,我尝试使用ListItem li = list.GetItemsById(textIDbox.text);没有成功。
最后,我尝试使用ListItem li = list.GetItemsById(1348);没有成功。
我的问题 在我的研究中,我曾多次在StackOverview这里找到并发现我的特殊情况。因此,我的问题是,您如何将特定列表项ID的SharePoint列表项字段值拉回Silverlight并填充不同的控件,如textbox.text?
我在这里提供了我的代码。请记住,我不到6个月就是C#和Silverlight程序员。这是我的第一个重大项目,我完全被困在这里!
private void childWindow_GotFocus(object sender, RoutedEventArgs e)
{
context = new ClientContext(siteUrl);
web = context.Web;
context.Load(web);
List list = context.Web.Lists.GetByTitle("mylist");
context.Load(list);
CamlQuery query = new CamlQuery();
query.ViewXml = "<View><Query><Where><Eq><FieldRef Name = 'ID' LookupId='TRUE'/><Value Type='Integer'>1348</Value></Eq></Where></Query></View>";
ListItemCollection listitems = list.GetItems(query);
context.Load(listitems);
context.ExecuteQueryAsync(ItemSucceeededCallBack, ItemFailureCallBack);
}
void ItemSucceeededCallBack(object sender, ClientRequestSucceededEventArgs args)
{
Dispatcher.BeginInvoke(GetItems);
}
private void GetItems()
{
MessageBox.Show(textIDbox.Text, textIDbox.Text, MessageBoxButton.OK);
}
private void ItemFailureCallBack(object sender, ClientRequestFailedEventArgs e)
{
MessageBox.Show("Request Failed: " + e.Message + ", Stack Trace:" + e.StackTrace);
}
我有一个名为Idea的类,其中包含List的字段。我用它来绑定到raddataGrid。我也试过了,但这也没有拉回日期。我有一种感觉,它是我的查询和我如何尝试拉取字段值的组合。
我也尝试了其他代码,例如ListItems.Load(items,item =&gt; item [“Status”]);在我的ExecuteQuery语句之前。
感谢您查看我的问题