将mysql内容插入html?

时间:2011-03-23 08:47:24

标签: c# jquery asp.net mysql sql

您好我试图找出一种将mysql内容写入html代码的方法:

我的asp页面上有一个名为<div id="test1"></div>的区域(此区域是静态的)

我想从我的表中获取内容并将代码放在不同div名称下的div中(div id = sqlcontent)

所以它看起来像这样:

<div id="test1">
        <div id="mysqlcontent">something the user would write which is stored in my db</div>
</div>

有这样的方式:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Odbc;
using System.Web.UI.HtmlControls.HtmlGenericControl; 

public partial class UserProfileWall : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {

        string theUserId = Session["UserID"].ToString();
        //Label1.Text = Convert.ToString(theUserId);

        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=x; Password=x;"))
        {
            cn.Open();
            using (OdbcCommand cmd = new OdbcCommand("SELECT WallPosting.Wallpostings FROM WallPosting LEFT JOIN WallPosting ON User.UserID = WallPosting.UserID WHERE User.UserID=" + theUserId + "", cn))
            //{

            //    cmd.Parameters.AddWithValue("@UserID", theUserId);


            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();
// error on this line innerHtml does not contain a definition for'innerHtml'?
            }
        }
    }

不确定它是否可以在asp中使用C#,所以我尝试通过jquery incase进行下面的方法?但我不确定如何用j写?

$(function () {

    $(page load).**unsure what goes here**(function () {
        var x = $(retrieve some data from mysql table unsure if jquery can do this).val();
        var newdiv = $("<div></div>").html(x).attr('id', 'mysqlcontent');
        $('#test1').append(newdiv);
    });
});  

ASP html:

</script>
<p>
    <asp:TextBox ID="TextBox1" name="TextBox1" runat="server" Rows="3" 
        Height="47px" Width="638px"></asp:TextBox>
</p>
<p>
    <asp:Button ID="Button1" runat="server" Text="Post Message" Width="98px" 
        onclick="Button1_Click" />
    </p>
<p>
    <asp:Table ID="Table1" name="Table1" runat="server" Width="488px"></asp:Table>
</p>

<div id="test1" runat="server" />

</asp:Content>

4 个答案:

答案 0 :(得分:1)

对于基本的C#实现,如果使用runat="server"标记test1 div ...

<div id="test1" runat="server" />

...然后你可以在你的代码中引用它......

protected global::System.Web.UI.HtmlControls.HtmlGenericControl test1;

...并且可以在设置内容之前使用DataReader构建内容

// prepare DataReader
var divHtml = new System.Text.StringBuilder("<div id=mysqlcontent>")
while (reader.Read()) {
   divHtml.Append("something built from your database text");
}
divHtml.Append("</div>")
test1.InnerHtml = divHtml.ToString();

答案 1 :(得分:1)

或者你可以在div中添加文字控件。

<div id="test1">
<div id="mysqlcontent">
<asp:literal id="literal1" runat="server"></asp:literal>
</div>
</div>

在此之后,你可以应用你想要的任何数据(包括html标签)

 literal1.Text="something";
 literal1.Text+="More data";

答案 2 :(得分:0)

$("#mysqlcontent").html("sqlthere")

修改

为了实现你的目标,你必须知道ajax是如何工作的,但是 - 什么是ajax? - 。

我不打算写下我所知道的整个课程,而只是写一些直接的信息。 Ajax是一种允许您进行异步调用的机制。例如,您的客户访问您的网站,主页面已加载。并且人们不断发布例如新闻,你不希望用户被迫刷新以获取新消息,你只想保持主页的方式,只是查询服务器并询问它是否是得到了一些消息。

Javascript和JQuery都不能与MySQL或任何其他RDBM交谈。你必须创建一个文件,例如:getComments.asp

所有这个文件都是查询mysql数据库并以你想要的任何格式(纯文本,html,xml,json等等)返回结果。

然后在客户端,您可以执行以下操作:

1-如果你的getComments.asp在HTML中返回你的评论,例如它可能会返回:

  <div class="coment">I am a good comment</div>
  <div class="coment">I am a short</div>
  <div class="coment">I am a looooooooooooooooooong</div>

然后,在jquery中你做:

$.ajax({
  url: 'getComments.asp',
  success: function(data) {
    $('#myCommentsDiv').html(data);
  }
});

2- Json:Asp在json中返回注释(请参阅http://www.google.be/search?sourceid=chrome&ie=UTF-8&q=c%23+json)并在您的代码中执行:

$.ajax({
  url: 'getComments.asp',
      DataType: 'json',
  success: function(data) {
            var comments = eval('(' + data + ')');
            for (comm in comments){
                $('#commentsDiv').prepend("<div class='comment'>" + comm + "</div>");
            }

  }
});

有关jquery / ajax的更多信息:http://api.jquery.com/jQuery.ajax/

答案 3 :(得分:0)

当然有几种方法,最简单的方法是将runat =“server”放入div mysqlcontent然后@回发时你能够访问这个div。

其他方法是使用ajax方法或使用jQuery。