gpt4 book ai didi

c# - 在 foreach 中定位组的最后一行以写出 HTML 表格

转载 作者:行者123 更新时间:2023-11-30 17:14:32 26 4
gpt4 key购买 nike

我的 asp.net (c#) 代码有问题,让我的 foreach 循环在到达来 self 的数据库的新行输入时执行特定操作;一个简单的例子:

我的数据库抛出了 5 组行:

       column
row1 | ca
row2 | ca
row3 | ro
row4 | ro
row5 | ef

我将这些行放入 foreach 循环中,然后将它们循环到 HTML 表中。这样我想要一个 border-bottom,就在每次它进入一个新的“集合”行之前。如果可能的话,我希望这一切都是动态的。

我希望我的表在获得输出时看起来像这样:

<table>
<tr><td>ca</td></tr>
<tr style='border-bottom: 1px solid Red'><td>ca</td></tr>
<tr><td>ro</td></tr>
<tr style='border-bottom: 1px solid Red'><td>ro</td></tr>
<tr style='border-bottom: 1px solid Red'><td>ef</td></tr>
</table>

我只想补充一点,我对整个 c# 世界和一般编程还很陌生,但我正在学习并喜欢它 :) - 我希望你们能帮助我……然后说如果有什么地方不够清楚,我会尽量详细说明。

foreach (DataRow row in dt.Rows) {
//HERE I WANT MY TR TO HAVE A BORDER BOTTOM WHEN IT REACHES A NEW SET OF ROW
if (row["colLink"].ToString() != "") {
litTilbud.Text += "<tr onClick='window.open(\"" + row["colLink"] + "\", \"_blank\")' style='cursor: pointer;'>";
} else {
litTilbud.Text += "<tr>";
}
litTilbud.Text += "<td class='tooltip' title='" + row["colDok"] + " - Tilføjet af: " + row["colNavn"] + "'>" + row["colSodavand"] + "</td>";
litTilbud.Text += "<td>" + row["colAntal"] + " " + row["colType"] + " a " + row["colStorrelse"] + "L</td>";
litTilbud.Text += "<td><strong>" + string.Format("{0:#.00}", row["colPris"]) + ",-</strong></td>";
litTilbud.Text += "<td>(" + string.Format("{0:#.00}", row["Literpris"]) + ",-)</td>";
litTilbud.Text += "<td>" + row["colSupermarked"] + "</td>";
litTilbud.Text += "</tr>";
}

最佳答案

我认为您不需要 foreach 循环。相反,请尝试使用 RepeaterGridView。然后您需要做的就是绑定(bind)您的数据(您的数据库输出),您就完成了。

我建议查看一些示例以了解如何使用它。这需要一些学习,但它可以让您更好地控制并使您的代码更易于理解。

一个简化的示例,根据您的需要对其进行编辑:

<asp:GridView ID="MyGrid" runat="server" CssClass="MyGridStyle"
OnRowDataBound="MyGrid_OnRowDataBound"
AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="yourDataField" />
</Columns>
</asp:GridView>

在你后面的代码中,你放置了一个事件处理程序,如下所示:

protected void MyGrid_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
// only datarows, no header rows:
if (e.Row.RowType == DataControlRowType.DataRow)
{
// user e.Row.DataItem to get to the data
if(your logic here about groups)
{
e.Row.Style = "border-bottom:solid black 1px";
}
}
}

Page_Load 中,您可以添加以下代码以将 GridView 与您的数据绑定(bind):

MyGrid.DataSource = YourObjectWithDataFromDatabase;
MyGrid.DataBind(); // bind data to gridview

注意:如果您的数据源恰好有您想要的字段,不多也不少,您可以将 AutoGenerateColumns 设置为 true,并删除 Columns -definition,这让你的代码更简单。

关于c# - 在 foreach 中定位组的最后一行以写出 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com