如何使用C#将List Item列绑定到sharepoint中的下拉列表
我有两个名为“课程”,“教师”的名单. “课程”列表包含以下列.
CourseName Duration ---------------------- Sharepoint 60days MSBI 45days .Net 90days Java 50days 教师列表包含以下列 Instructor Course --------------------- John Sharepoint Mike MSBI Bob Java 我想在下拉列表中添加“CourseName”列,该列表应该在webpart中实现. DropDownList drpList; protected override void CreateChildControls() { drpList = new DropDownList(); SPSite site = SPContext.Current.Site; SPWeb web = site.RootWeb; SPList list1 = web.Lists["Courses"]; var listitems = list1.Fields["Course Name"]; drpList.DataSource = listitems; drpList.DataTextField = "Course Name"; drpList.DataValueField = "Course Name"; drpList.DataBind(); Controls.Add(drpList); } 任何人都可以建议我做正确的方法!! 新的实施. DropDownList drpList; protected override void CreateChildControls() { drpList = new DropDownList(); SPSite site = SPContext.Current.Site; SPWeb web = site.RootWeb; ArrayList myarr = new ArrayList(); myarr.Add(1); myarr.Add(2); SPSiteDataQuery dataquery = new SPSiteDataQuery(); dataquery.Lists = string.Format("<Lists><List ID={0} /></Lists>",web.Lists["Courses"].ID); dataquery.ViewFields = "<FieldRef Name="Course Name"/>"; DataTable dt = web.GetSiteData(dataquery); drpList.DataTextField = "Course Name"; drpList.DataValueField = "Course Name"; drpList.DataSource = dt; drpList.DataBind(); Controls.Add(drpList); } 下拉列表正在出现,但没有数据.我认为CAML查询中存在错误.请任何人纠正我! 解决方法
Lukasz M所指的帖子是我自己写的.
首先,您需要有两个单独的列表吗?您是否只有一个名为Courses的列表,其中包含以下列:* CourseName,Duration,Instructor *?******然后您可以应用基本上执行以下操作的CAML查询:如果CourseName =“SharePoint”,然后从讲师列中显示值John?如果你按照我的描述设置了这个列表(一个列表中的所有3列),那么代码将如下所示(置于Page_Load事件中): SPListItemCollection itemCol = null; SPSite site = new SPSite("http://yoursharepointsite"); SPWeb web = site.OpenWeb(); SPList list = web.Lists["Courses"]; //Name of your List with Courses SPQuery qryCourse = new SPQuery(); //This checks what you have selected in the drop-down list (assuming it's called dropList) qryCourse.Query = "<Where><Eq><FieldRef Name='Title'/><Value Type='Text'>" + dropList.SelectedItem.Text + "</Value></Eq></Where>"; qryCourse.ViewFields = "<FieldRef Name='Instructor'/>"; //You want the Instructor Column to display try { itemCol = list.GetItems(qryCourse); foreach (SPListItem item in itemCol) { //Display the Instructor value in your label lblInstructorName.Text = item["Instructor"].ToString(); } } catch (NullReferenceException) { lblInstructorName.Text = "Some Kind of Error!"; } 请注意,您仍然需要使用我之前发布的Retrieve SharePoint List Data and bind this to a dropdownlist中的代码来绑定dropList字段,以便它从Lukasz M建议的名为Courses的Sharepoint列表中检索其值.这也将在Page_Load事件中进行(在我上面的代码之前).希望有助于Mihir! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |