我对如何在webpart中的两列中显示列表数据感到困惑。
这是我现在所拥有的(Webpart):
<table width="100%">
<tr>
<td width="50%">
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</td>
<td width="50%">
<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>
</td>
</tr>
</table>
以及它背后的代码如下:
foreach (SPListItem oListItem in listItemCollection)
{
awardYear = oListItem["Year"].ToString();
awardCategory = oListItem["Category"].ToString();
awardOrganiser = oListItem["Organiser"].ToString();
//awardNomWon = oListItem["NominatedWon"].ToString(); //not yet needed
//need to fingure out how to display images:
//awardLogo = oListItem["Logo"].ToString();
//string mydatetime;
//mydatetime = new DatTime(awardYear).ToString;
//DateTime convertedaValue = DateTime.Parse(awardYear);
//string awardYearConverted = convertedaValue.ToString();
PlaceHolder1.Controls.Add(
new LiteralControl(awardYear + " " + "|" + "<br/> " +
awardCategory + " " + "|" + "<br/> " +
awardOrganiser + " " + "|" + "<br/><br/>"));
PlaceHolder2.Controls.Add(
new LiteralControl(awardYear + " " + "|" + "<br/> " +
awardCategory + " " + "|" + "<br/> " +
awardOrganiser + " " + "|" + "<br/><br/>"));
/*
PlaceHolder2.Controls.Add(
new LiteralControl("<table><tr><td>" + awardYear + "</td>" +
"<td> </td>" + "<td>" +
awardCategory + "<br/>" +
awardOrganiser + "</td></tr>" ));
*/
}
我想要实现的是从“奖励”列表中写下详细信息并将其显示在两列中。目前一切正常,但问题是数据在表的colum1和column2中重复。理想情况下,我希望“foreach”能够创建表格并用列表中的详细信息填充它。
也许我错过了一些东西,但我真的看不出那是什么。任何建议将不胜感激。
答案 0 :(得分:1)
使用Table控件之类的东西来构建表格会更加整洁和可维护。
<asp:Table ID="MyTable" runat="server" />
然后在您的代码中使用TableRow和TableCell对象构建数据。
答案 1 :(得分:1)
没有什么可以在循环中描述你想要信息的表格的哪一边,所以我建议用你的循环
int modCounter = 0;
foreach (SPListItem oListItem in listItemCollection)
{
modCounter += 1;
awardYear = oListItem["Year"].ToString();
awardCategory = oListItem["Category"].ToString();
awardOrganiser = oListItem["Organiser"].ToString();
if(modCounter % 2 == 0) // If modCounter is divisible by 2 (ie even)
{
// Add information that goes in first column
}
else
{
// Add information that goes in second column
}
}
答案 2 :(得分:0)
使用Rows Property 的System.Web.UI.WebControls.Table。这意味着删除你的html标记并改为使用表格web控件。