【问题标题】:Problem in code adds to the same div?代码中的问题添加到同一个 div?
【发布时间】:2011-07-21 05:42:20
【问题描述】:

代码中的问题添加到同一个 div?我需要它来添加相同 id 的多个 div。

Atm 它获取我数据库中所有单独的实体或列,并将它们放在一个名为的 div 中,我希望它会为我的数据库中的每条记录添加它,该记录等于我的 sqlsyntax 中的用户 ID。

我怎样才能做到这一点?

代码:

    using (OdbcCommand cmd = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + theUserId + "", cn))

    using (OdbcDataReader reader = cmd.ExecuteReader())
    {
        var divHtml = new System.Text.StringBuilder("<div id=mysqlcontent>");
        while (reader.Read())
        {
            divHtml.Append(String.Format("{0}", reader.GetString(0)));
        }

        divHtml.Append("</div>");
        test1.InnerHtml = divHtml.ToString();

    }
}

}

例子:

<div id="test1">
   <div id="mysqlcontent">every record from my database = to the userid is being placed in this single div  </div>
</div>

我需要它看起来像这样:

<div id="test1">
   <div id="mysqlcontent">record 1</div>
   <div id="mysqlcontent">record 2</div>
</div>

【问题讨论】:

  • 想知道!!!!!!!!!为什么你需要所有具有相同 id 的 div??
  • 很奇怪,但如果你仍然需要它,那么
    应该在 while 循环中
  • @garrith: 不需要单个 id 来应用 css,有很多方法可以实现这一点,例如,一行 jquery 会将 css 应用到具有不同 id 的大量 div 上。跨度>
  • 你能发布一个实现复仇的答案吗!?
  • 对于 Css,我将使用 class="mysqlcontent" 并使用 id 字段来描述记录内容实际包含的内容。然后在您的样式表中使用 .mysqlcontent 而不是 #mysqlcontent

标签: c# asp.net mysql sql html


【解决方案1】:
   using (OdbcCommand cmd = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + theUserId + "", cn))

    using (OdbcDataReader reader = cmd.ExecuteReader())
    {
        var divHtml = new System.Text.StringBuilder();
        while (reader.Read())
        {
            divHtml.Append("<div id=mysqlcontent>");
            divHtml.Append(String.Format("{0}", reader.GetString(0)));
            divHtml.Append("</div>");
        }


        test1.InnerHtml = divHtml.ToString();

    }
}

不过,Furqan 是对的。多个元素具有相同的 id 有点奇怪。

【讨论】:

  • 这就是答案!谢谢,但是我确实有另一个问题,就是将内容从我的数据库中向后取出,即最早的内容?如何设置为先取出最新的?
  • 嗨,加里斯。听起来您想要在 SQL 查询中使用“ORDER BY”子句。很难给你确切的查询,因为我不知道列名。下面是对 ORDER BY 的一个很好的解释:w3schools.com/sql/sql_orderby.asp
  • 感谢您回答了所有这些问题,现在我需要添加一个新问题,希望您能再次回答?应该只需要你一秒钟,因为你已经明白我在这里做了什么。
  • 当然。你的新问题是什么?
  • 不好意思我发的时候才写,应该发的就写了。
【解决方案2】:

你可以试试这个:

using (OdbcCommand cmd = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + theUserId + "", cn))
using (OdbcDataReader reader = cmd.ExecuteReader())
{       
    var divHtml = new System.Text.StringBuilder(); 
    while (reader.Read())
    {
        var divHtml.AppendFormat("<div class=\"mysqlcontent\">{0}</div>", reader.GetString(0));
    }

    test1.InnerHtml = divHtml.ToString();

}

这样,您在 while 循环的每次迭代中都会生成一个新的 &lt;div&gt;。另请注意,我使用“mysqlcontent”作为&lt;div&gt;class,而不是id。每个 id 只能在整个 HTML 页面中使用一次。

【讨论】:

    【解决方案3】:

    这是纠正代码的一种方法

    while (reader.Read())
    {
        var divHtml = new System.Text.StringBuilder("<div id=mysqlcontent>");
        divHtml.Append(String.Format("{0}", reader.GetString(0)));
        divHtml.Append("</div>");
        test1.InnerHtml += divHtml.ToString();
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      • 1970-01-01
      相关资源
      最近更新 更多