从自定义Web部件中数据行中的单元格解码html
本文关键字:单元格 解码 html 数据 Web 自定义 | 更新日期: 2023-09-27 18:24:10
我有以下代码将数据从sharepoint网站中的列表加载到自定义web部件。
private void Data_load()
{
DataTable dt = new DataTable();
string currentName = SPContext.Current.Web.CurrentUser.Name;
SPQuery query = new SPQuery();
query.Query = "<Where><Eq><FieldRef Name='Editor'/><Value Type='Person or Group'>" + currentName + "</Value></Eq></Where>";
using (SPSite site = new SPSite("http://spdev-6/"))
{
using (SPWeb web = site.OpenWeb())
{
SPList lists = web.GetList("Lists/Advertisements");
SPListItemCollection items = lists.GetItems(query);
if (items.Count > 0)
{
//foreach(SPListItem item in items)
//{
// string decodeDescrip = Server.HtmlDecode( item["Details"].ToString());
// item["Details"] = decodeDescrip;
//}
dt = items.GetDataTable();
}
else
lbldata.Text = "No data to show";
GridViewD.DataSource = dt;
GridViewD.DataBind();
HttpContext.Current.Session["Advertisement"] = dt;
}
}
}
现在的问题是,我正在其中一列中获取Htmlncode数据。现在我必须将它从网格视图中删除。那么如何去除呢?
在将列分配给网格之前,可以修改DataTable中的列。看看这里和这里。
protected void GridView1_DataBound(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
for (int i = 0; i < row.Cells.Count - 1; i++)
{
if (row.Cells[i].Text == "0")
{
row.Cells[i].Text = "";
}
}
}
}
您还可以更改DataBinding上的值,如本SO Answer中所述。
protected void GridView1_DataBound(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
for (int i = 0; i < row.Cells.Count - 1; i++)
{
if (row.Cells[i].Text == "0")
{
row.Cells[i].Text = "";
}
}
}
}