C# foreach循环检索列表项并创建表
对于如何在一个Web部件的两列中显示列表数据,我有点困惑 以下是我目前拥有的(网页部分):C# foreach循环检索列表项并创建表,c#,sharepoint-2010,foreach,listitem,C#,Sharepoint 2010,Foreach,Listitem,对于如何在一个Web部件的两列中显示列表数据,我有点困惑 以下是我目前拥有的(网页部分): 其背后的代码如下所示: foreach (SPListItem oListItem in listItemCollection) { awardYear = oListItem["Year"].ToString(); awardCategory = oListItem["Category"].ToString(); awardOrganiser = oListItem["Org
其背后的代码如下所示:
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>" ));
*/
}
foreach(listItemCollection中的SPListItem oListItem)
{
awardYear=oListItem[“Year”]。ToString();
awardCategory=oListItem[“Category”].ToString();
awardOrganizer=oListItem[“Organizer”].ToString();
//awardNomWon=oListItem[“NominatedWon”]。ToString();//尚不需要
//需要找出如何显示图像:
//awardLogo=oListItem[“Logo”].ToString();
//字符串mydatetime;
//mydatetime=新的日期时间(奖励年).ToString;
//DateTime ConvertedValue=DateTime.Parse(获奖年份);
//字符串awardYearConverted=convertedValue.ToString();
占位符1.Controls.Add(
新的LiteralControl(awardYear++“|”+”
“+
获奖类别+“+”+“|“+”
“+
获奖组织者+“+”|“+”
);
占位符2.Controls.Add(
新的LiteralControl(awardYear++“|”+”
“+
获奖类别+“+”+“|“+”
“+
获奖组织者+“+”|“+”
);
/*
占位符2.Controls.Add(
新的文字控制(“+awardYear+”)+
" " + "" +
获奖类别+“
”+
获奖组织者+”);
*/
}
我试图实现的是从“奖励”列表中写入详细信息,并将其显示在两列中。目前一切正常,但问题是数据在表的第1列和第2列中重复。理想情况下,我希望“foreach”将创建表并用列表中的详细信息填充它
也许我错过了一些东西,但我真的看不出那是什么。如果您有任何建议,我们将不胜感激。使用表格控件之类的工具构建表格将更加整洁和易于维护
<asp:Table ID="MyTable" runat="server" />
然后在代码中使用TableRow和TableCell对象构建数据。使用。这意味着删除html标记,改用表web控件。在循环中没有任何东西可以描述您希望信息位于表的哪一侧,因此我建议您在循环中使用此选项
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
}
}
请尊重并纠正问题中的拼写错误嗨,Paul Leigh,第一列和第二列的信息将是相同的,即它们都将显示“awardYear,awardCategory,AwardOrganizer”,只是我希望它显示在两列中,因此我使用了表格。换句话说,列表中的项目1将显示在第一列中,列表中的项目2将显示在第二列中,列表中的项目3将显示在第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
}
}