我有一個名爲「課程」,「教師」的兩個列表。 「課程」列表包含以下列。如何將列表項列綁定到SharePoint下拉列表中使用C#
CourseName Duration
----------------------
Sharepoint 60days
MSBI 45days
.Net 90days
Java 50days
教師列表包含以下幾列
Instructor Course
---------------------
John Sharepoint
Mike MSBI
Bob Java
我想補充「CourseName」欄下拉列表,應該在web部件實現。 當我們從該下拉列表中選擇任何課程時,我們應該在標籤中顯示教師的名字。 最初我嘗試添加一個下拉到web部件以顯示CourseName列以下代碼。但我未能創造。
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);
}
下降downlist正在出現,但沒有數據。我認爲CAML查詢存在錯誤。請任何人糾正我請!
@Lukasz ..這是行不通的。首先,我在發佈這個問題之前先試着用那個。 – Mihir
使用此代碼時,您會得到什麼錯誤或描述了什麼不起作用(如鏈接到的答案中所述)?你有沒有把這個代碼放在'Page_Load'方法中?如果它爲某人工作而不爲你工作,那麼在某處,在提供的代碼或數據中可能有區別,所以我試圖找出它有什麼區別:)。 –
再次查看您的問題......您使用的是SharePoint 2007還是2010? –