我要从数据库加载推文但是它不起作用请检查我在哪里做错了
这是我要加载推文的div
<div id="load_tweets">
</div>
这是就绪函数内的setinterval方法
setInterval(function () {
$('#load_tweets').load("CS.aspx/fetch").fadeIn("slow");
},1000);
这是获取[webMethod]
[System.Web.Services.WebMethod]
public static DataTable fetch()
{
SqlConnection con = new SqlConnection("data source=dbcomments;initial catalog=CommentSystemUsingAjax;integrated security=true");
SqlDataAdapter da = new SqlDataAdapter("select * from tbl_tweet order by tweet_id desc", con);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
我也尝试过这种方式
[System.Web.Services.WebMethod]
public static string fetch(string tweet)
{
SqlConnection con = new SqlConnection("data source=dbcomments;initial catalog=CommentSystemUsingAjax;integrated security=true");
SqlDataAdapter da = new SqlDataAdapter("select * from tbl_tweet order by tweet_id desc", con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
tweet = dt.Rows[0]["tweet"].ToString();
}
return tweet;
}
请帮帮我
答案 0 :(得分:0)
将Web方法返回类型从数据表更改为字符串
[WebMethod]
public static string fetch()
{
SqlConnection con = new SqlConnection("connection string");
SqlDataAdapter da = new SqlDataAdapter(query, con);
DataTable dt = new DataTable();
da.Fill(dt);
return JsonConvert.SerializeObject(dt);
}
现在使用Ajax调用静态方法...
$(document).ready(function () {
setInterval(function ()
{
FetchData();
},1000);
});
function FetchData() {
try {
$.ajax({
async: true,
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Path/fetch",
dataType: "json",
success: function (data) {
if (data.d != "") {
var json_obj = $.parseJSON(data.d);
// get array of data in json_obj
}
},
error: function (xhr, status, err) {
}
});
} catch (e) {
}
}
答案 1 :(得分:0)
您应该将页面的确切链接提供给加载函数的参数
setInterval(function () {
$('#load_tweets').load("/CS.aspx/fetch").fadeIn("slow");
},1000);
也回到数据表你不能让我。你可以只返回字符串。你可以使用json。你可以逃脱渲染ASP Net Control