C# 以编程方式填充html表格单元格
我想循环浏览我使用C#代码创建的表,并显示从Sharepoint列表中提取的数据,该列表在表中格式化。这是我想出的代码:C# 以编程方式填充html表格单元格,c#,html,loops,sharepoint,html-table,C#,Html,Loops,Sharepoint,Html Table,我想循环浏览我使用C#代码创建的表,并显示从Sharepoint列表中提取的数据,该列表在表中格式化。这是我想出的代码: protected override void RenderContents(HtmlTextWriter output) { try { SPSite thisSite = SPControl.GetContextSite(Context); using (SPWeb topWe
protected override void RenderContents(HtmlTextWriter output)
{
try
{
SPSite thisSite = SPControl.GetContextSite(Context);
using (SPWeb topWeb = thisSite.OpenWeb("/"))
{
SPList newsList = topWeb.Lists["Headlines"];
SPQuery query = new SPQuery();
query.ExpandRecurrence = true;
query.Query = NewsListCamlQuery;
query.RowLimit = 2;
SPListItemCollection coll = newsList.GetItems(query);
output.Write("<table border='0' style='width: 100%;'><tbody>");
for (int i = 0; i < 2; i++)
{
output.Write("<tr>");
for (int j = 0; j < 3; j++)
{
output.Write("<td>");
foreach (SPListItem item in coll)
{
int newsID = int.Parse(item.ID.ToString());
output.Write("<hr/>");
output.Write("<table style='width: 100%; height: 143px;'><tbody>");
output.Write("<tr><td valign='top'><h4>");
output.Write(item["Title"].ToString());
output.Write("</h4></td></tr>");
output.Write("<tr><td valign='top'><h4 class='ms-rteElement-H4B'><span style='font-size: 8pt;'>");
output.Write(item["Sub_x0020_Heading"].ToString());
output.Write("</span></h4></td></tr>");
output.Write("<tr><td valign='top'><span style='font-size: 8pt;'>");
output.Write("<img class='image' src='");
//output.Write(item["Photo"].ToString());
output.Write("' Width='64px' Height='48px' Border='0' alt='' style='margin: 5px;'/>");
output.Write(item["Details"].ToString());
output.Write("</span></td></tr>");
output.Write("<tr><td valign='top'>");
output.Write("<a class='mt-linkMore' href='/Lists/Headlines/DispForm.aspx?ID=");
output.Write(newsID);
output.Write("' <span style='font-size: 6pt;'>Read More</span></a></td></tr>");
output.Write("</tbody></table>");
}
output.Write("</td>");
}
output.Write("</tr>");
}
output.Write("</tbody></table>");
}
}
catch (Exception exception)
{
output.Write("Error : " + exception.Message);
}
}
protected override void RenderContents(HtmlTextWriter输出)
{
尝试
{
SPSite thisSite=SPControl.GetContextSite(上下文);
使用(SPWeb topWeb=thisSite.OpenWeb(“/”)
{
SPList newsList=topWeb.Lists[“标题”];
SPQuery query=新建SPQuery();
query.ExpandRecurrence=true;
query.query=NewsListCamlQuery;
query.RowLimit=2;
SPListItemCollection coll=newsList.GetItems(查询);
输出。写入(“”);
对于(int i=0;i<2;i++)
{
输出。写入(“”);
对于(int j=0;j<3;j++)
{
输出。写入(“”);
foreach(coll中的SPListItem项)
{
int newsID=int.Parse(item.ID.ToString());
输出。写入(“
”);
输出。写入(“”);
输出。写入(“”);
output.Write(项[“Title”].ToString());
输出。写入(“”);
输出。写入(“”);
output.Write(项[“Sub_x0020_Heading”].ToString());
输出。写入(“”);
输出。写入(“”);
输出。写入(“”);
output.Write(item[“Details”].ToString());
输出。写入(“”);
输出。写入(“”);
输出。写入(“”);
输出。写入(“”);
}
输出。写入(“”);
}
输出。写入(“”);
}
输出。写入(“”);
}
}
捕获(异常)
{
output.Write(“错误:+exception.Message”);
}
}
此代码当前正在每个单元格中重新写入相同的记录。我希望它显示从Sharepoint列表中提取的六条记录 如果要显示两行3个单元格,则不应放置foreach 在第二个循环的内部,您可以直接引用列表中的元素:
for (int i = 0; i < 2; i++)
{
output.Write("<tr>");
for (int j = 0; j < 3; j++)
{
output.Write("<td>");
int index;
if (i = 0)
index = j;
else
index = j + 3;
SPListItem item = coll[index];
int newsID = int.Parse(item.ID.ToString());
...
for(int i=0;i<2;i++)
{
输出。写入(“”);
对于(int j=0;j<3;j++)
{
输出。写入(“”);
整数指数;
如果(i=0)
指数=j;
其他的
指数=j+3;
SPListItem=coll[索引];
int newsID=int.Parse(item.ID.ToString());
...
最简单的调试解决方案是将所有html写入字符串,完成循环后从字符串复制数据并粘贴到html文件(文本文件另存为html)。然后查看html,您将发现错误所在。我应该在代码中的何处放置这行代码。这也将允许我重新查看sharepoint列表的最后6行。