用于查询SharePoint列表的Silverlight子窗口&按ID获取项目以绑定到字段

时间:2014-02-15 01:20:38

标签: c# silverlight sharepoint sharepoint-2010

情景

我很难自己解决这个问题,而且通过我所做的所有研究,我无法找到一个不会让我更加困惑的答案。

我有一个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语句之前。

感谢您查看我的问题

0 个答案:

没有答案