您好我试图找出一种将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>
答案 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。