вторник, 21 июня 2011 г.

SPGridView и WebPart

Создадим новый проект (Визуальная веб-часть)  и в UserControl.ascx.cs в метод
Page_Load(object sender, EventArgs e) добавим:

SPSite Site = SPContext.Current.Site;
SPList List = Site.AllWebs["nameSite"].Lists["nameList"];
SPQuery query = new SPQuery();
query.Query = "<Where>" +
"<Eq>" +
"<FieldRef Name=\"nameField\" />" +
"<Value Type=\"Text\">Text1</Value>" +
"</Eq>" +
"</Where>";

SPListItemCollection listColl = List.GetItems(query);
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Field1");
dataTable.Columns.Add("Field2");

foreach (SPListItem item in listColl)
{
DataRow dataRow = dataTable.NewRow();
dataRow["Field1"] = item["Field1"].ToString();
dataRow["Field2"] = item["Field2"].ToString();
dataTable.Rows.Add(dataRow);
}

DataView dataView = new DataView(dataTable);
dataTable = dataView.ToTable(true, "Field1", "Field2");


SPGridView gridView = new SPGridView();
gridView.ID = "idgridView";
gridView.AutoGenerateColumns = false;
BoundField field1 = new BoundField();
field1.HeaderText = "displayName1";
field1.DataField = "Field1";
gridView.Columns.Add(field1);

BoundField field2 = new BoundField();
field2.HeaderText = "displayName2";
field2.DataField = "Field2";
gridView.Columns.Add(field2);

this.Controls.Add(gridView);
base.CreateChildControls();

gridView.DataSource = dataTable;
gridView.DataBind();
На странице добавится веб-часть с SPGriedView и в нем 2 поля. С помощью Query отфильтруется по полю nameField = Text1;

2 комментария: