「コース」と「インストラクター」という 2 つのリストがあります。「コース」リストには、次の列が含まれます。
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);
}
ドロップダウンリストは表示されますが、データがありません。CAML クエリに誤りがあると思います。誰でも私を訂正してください!!