Я использовал gridview
, чтобы динамически выбирать столбцы из списка. Списки также имеют поле вложения. Таким образом, у меня есть файл вложения url в переменной с именем attach.
Пример: attach = "http: //sok:1234/Lists/CapabilityTableSales/attachments/1/Dashboard Solutions.pptx"
Я использовал следующий код !!
private void PopulateGrid()
{
try
{
// List is Hard Coded here . we can also use current Context instead//
string SiteListURL = "http://sok:1234/Lists/Case%20Studies/";
using (SPSite oSiteCollection = new SPSite(SiteListURL))
{
using (SPWeb web = oSiteCollection.OpenWeb())
{
DataTable dt = new DataTable();
SPQuery query = new SPQuery();
query.Query = "";
if (txt_Search.Text != String.Empty)
{
txt_Search.Text = "Key1";
query.Query = @"<Where><Contains><FieldRef Name='Key%20words' /><Value Type='Text'>" + txt_Search.Text + "</Value></Contains></Where>";
}
query.ViewFields = String.Concat(
"<FieldRef Name='Title' />",
"<FieldRef Name='Key%20words' />",
"<FieldRef Name='Project%20Brief' />",
"<FieldRef Name='Execution%20Highlights' />");
query.ViewFieldsOnly = true;
SPList list = web.Lists["Case Studies"];
SPListItemCollection col = list.GetItems(query);
dt = web.Lists["Case Studies"].GetItems(query).GetDataTable();
dt.Columns.Add(new DataColumn("Attachment", typeof(HyperLink)));
foreach (DataRow drow in dt.Rows)
{
drow["Attachment"] = getURL(drow["Title"].ToString());
//Where the function getURL will return the attachment URL!! (Working Fine)
}
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
catch (Exception ex)
{
//throw ex;
}
}
Как получить ошибку несоответствия столбцов для строки drow["Attachment"] = getURL(drow["Title"].ToString());
Мое требование - открыть файл (PPT) по щелчку этого URL.
Большое спасибо !!