在ASP.NET中“打破”while循环(C#)

时间:2011-06-01 17:58:42

标签: asp.net sql-server loops while-loop

我正在使用以下代码从我的数据库输出条目:

  while(reader.Read()) 

  { 
      Label1.Text += "<div>" + reader["Title"] + "</div>";

  }

但是,我希望将每个第二个条目添加到我的div中。

最终,我的HTML看起来像:

<div>Title1</div>
<div class="two">Title2</div>
<div>Title3</div>
<div class="two">Title4</div>
...

非常感谢任何指示。

5 个答案:

答案 0 :(得分:4)

简单的方法是使用快速布尔值来确定是否添加类:

bool useClass = true;

while(reader.Read()) 

      { 
          useClass = !useClass;
          Label1.Text += (useClass)? "<div class=\"alt\">" : "<div>";
          Label1.Text += reader["Title"] + "</div>";

      }

答案 1 :(得分:0)

这样的事情应该有效。

只需拥有一个计数器,并将每个奇数更改为<div><div class="two">

int count;
while(reader.Read()) 
{
  Label1.Text += (count % 2 == 0 ? "<div>" : "<div class=\"two\">") + 
       reader["Title"] + "</div>";
  count++;
}

答案 2 :(得分:0)

添加计数器,然后每次循环添加1。使用mod运算符每隔一段时间添加一次。

int i = 0;
while(reader.Read())
{
    if(i % 2 == 0) 
    { 
        Label1.Text += "<div>" + reader["Title"] + "</div>";
    }
    else 
    { 
        Label1.Text += "<div class=\"two\">" + reader["Title"] + "</div>";
    }
    i++;
}

答案 3 :(得分:0)

int index = 0;
while(reader.Read())
{
    bool addClass = (++index % 2 == 0);
    Label1.Text += (addClass ? "<div class=\"two\">" : "<div>") + 
       reader["Title"] + "</div>";
}

答案 4 :(得分:0)

如果它总是2,你不需要为mod和increment的数学运算而烦恼。你可以简单地使用布尔值:

bool useTwo = false;

while(reader.Read())
{
    Label1.Text += (useTwo ? "<div class=\"two\">" : "<div>") + 
                    reader["Title"] + "</div>";
    useTwo = !useTwo;
}

这只会创建一个不会建立的快速切换。数学周期非常微不足道,但最终都会加起来。