Sharepoint 通过web服务填充共享点查找列

Sharepoint 通过web服务填充共享点查找列,sharepoint,sharepoint-2007,Sharepoint,Sharepoint 2007,我试图通过web服务在列表中填充一个查找列。 我从asp.net web表单获取数据,并使用web服务方法UpdateListItems和发送批处理XML。 但是,除非用户输入查找使用的确切数据,否则web服务将返回错误 我是否可以为web表单的用户提供类似的查找功能,以便传递的数据相同 我正在使用SharePoint2007 共享点中查找列的数据源是active directory。 _x0028\u HR\u x0029\u\u x0020\u合作伙伴是查找列,输入用户登录名将查找其全名/您

我试图通过web服务在列表中填充一个查找列。 我从asp.net web表单获取数据,并使用web服务方法UpdateListItems和发送批处理XML。 但是,除非用户输入查找使用的确切数据,否则web服务将返回错误

我是否可以为web表单的用户提供类似的查找功能,以便传递的数据相同

我正在使用SharePoint2007 共享点中查找列的数据源是active directory。 _x0028\u HR\u x0029\u\u x0020\u合作伙伴是查找列,输入用户登录名将查找其全名/您可以从列表中选择

非常感谢你的帮助

            ClasService.Lists NewStarterList = new ClasService.Lists();
        NewStarterList.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["SPUserName"].ToString(),
            ConfigurationManager.AppSettings["SPPassword"].ToString(), ConfigurationManager.AppSettings["SPDomain"].ToString());

        NewStarterList.Url = ConfigurationManager.AppSettings["SPUrl"].ToString() + ConfigurationManager.AppSettings["SPServicePath"].ToString();

        try
        {
            string strBatch = "<Method ID='1' Cmd='Update'>" +
                "<Field Name='ID'>" + clasStarter.ClasID + "</Field>" +
                "<Field Name='Title'>" + clasStarter.Name + "</Field>" +
                "<Field Name='_x0028_HR_x0029__x0020_Job_x0020'>" + clasStarter.JobTitle + "</Field>" +
                "<Field Name='Entity'>" + clasStarter.Entity + "</Field>" +
                "<Field Name='Practice_x0020_Groups'>" + clasStarter.PracticeGroup + "</Field>" +
                "<Field Name='Dept'>" + clasStarter.Department + "</Field>" +
                "<Field Name='Physical_x0020_Desk_x0020_Locati'>" + clasStarter.Location + ", " + clasStarter.LocationInBuilding + ", " + clasStarter.Department + "</Field>" +
                "<Field Name='_x0028_HR_x0029__x0020_Line_x002'>" + clasStarter.LineManager + "</Field>" +
                "<Field Name='_x0028_HR_x0029__x0020_Buddy'>" + clasStarter.Buddy + "</Field>" +
                "<Field Name='_x0028_HR_x0029__x0020_Partner'>" + clasStarter.Partner + "</Field>" +//is a look up

                "</Method>";

            XmlDocument xmlDoc = new System.Xml.XmlDocument();

            System.Xml.XmlElement elBatch = xmlDoc.CreateElement("Batch");

            elBatch.SetAttribute("OnError", "Continue");
            elBatch.SetAttribute("ListVersion", "1");
            elBatch.SetAttribute("ViewName", ConfigurationManager.AppSettings["SPViewID"].ToString());

            elBatch.InnerXml = strBatch;

            XmlNode ndReturn = NewStarterList.UpdateListItems(ConfigurationManager.AppSettings["SPListID"].ToString(), elBatch);

        }
        catch (Exception exp)
        {
            throw new Exception("NewStarterForm - Clas Update failed ", exp);
        }
classservice.Lists NewStarterList=newclassservice.Lists();
NewStarterList.Credentials=新系统.Net.NetworkCredential(ConfigurationManager.AppSettings[“SPUserName”]).ToString(),
ConfigurationManager.AppSettings[“SPPassword”].ToString(),ConfigurationManager.AppSettings[“SPDomain”].ToString());
NewStarterList.Url=ConfigurationManager.AppSettings[“spur”].ToString()+ConfigurationManager.AppSettings[“SPServicePath”].ToString();
尝试
{
字符串strBatch=“”+
“”+clasStarter.ClasID+“”+
“”+clasStarter.Name+“”+
“”+clasStarter.JobTitle+“”+
“”+clasStarter.Entity+“”+
“”+ClassStarter.PracticeGroup+“”+
“”+clasStarter.Department+“”+
“+clasStarter.Location+”、“+clasStarter.LocationInBuilding+”、“+clasStarter.Department+”+
“”+clasStarter.LineManager+“”+
“”+clasStarter.Buddy+“”+
“”+clasStarter.Partner++//是一个查找
"";
XmlDocument xmlDoc=new System.Xml.XmlDocument();
System.Xml.xmlement elBatch=xmlDoc.CreateElement(“批处理”);
elBatch.SetAttribute(“OnError”、“Continue”);
SetAttribute(“ListVersion”、“1”);
elBatch.SetAttribute(“ViewName”,ConfigurationManager.AppSettings[“SPViewID”].ToString());
elBatch.InnerXml=strBatch;
XmlNode ndReturn=NewStarterList.updatelistems(ConfigurationManager.AppSettings[“SPListID”].ToString(),elBatch);
}
捕获(异常扩展)
{
抛出新异常(“NewStarterForm-Clas更新失败”,exp);
}

我还没有找到解决问题的完整方法,但我已经找到了其中的一部分

共享点查找列有两部分,一个id和一个值。如果您不知道该值,则可以使用-1;#作为ID的替代

这方面的一个例子是

"<Field Name='Partner'>-1;#" + partnerLogOnId + "</Field>"
“-1;#”+partnerLogOnId+”
我可能会使用一个列表,它允许我表单的用户选择人员,并将partnerLogOnId传递给我的web服务方法