簡體   English   中英

以編程方式填充html表單元格

[英]Programmatically populating html table cells

我想遍歷使用C#代碼創建的表,並顯示從在表中格式化的Sharepoint列表中提取的數據。 這是我想出的代碼:

    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);
        }
    }

該代碼當前正在每個單元中重寫相同的記錄。 我希望它顯示從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());
        ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM