留言本项目,里的【删除留言】,用jquery来实现删除后无刷新更新留言列表,但我写的代码,有一点小问题,就是有的行,要点击两次,界面才出现这行被删除同时更新留言列表,不知道是哪里错了,还请指教,叩首致谢。下面是代码:
[WebMethod]
public System.Data.DataSet Delete(int id)
{
System.Data.SqlClient.SqlConnection sqlCon = new SqlConnection();
sqlCon.ConnectionString = "server=.;uid=sa;pwd=sa;database=guestbook";
//定义SQL语句
string SqlStr = "delete from gbook where id=" + id;
//实例化SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(SqlStr, sqlCon);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
} <script type="text/javascript">
var pageNo = 1; //当前页号
var pageItems = 3; //每页显示的行数,这个数字与da.Fill(ds,pageNo,3,"gbook");里面的3保持一致
var MaxPage = pageItems; function showPage(m) {
if (m == -1) {
if (pageNo < 2) {
alert("已经到了首页");
return;
};
MaxPage = pageItems;
}
else {
if (MaxPage < pageItems) {
alert("已经到了末页");
return;
};
}
pageNo += m;
getData();
}
$(document).ready(function () {
getData();
});
function getData() {
$.ajax({
type: "POST",
cache: false,
url: "WebService.asmx/Select", /* 注意后面的名字对应CS的方法名称 */
data: { "pageNo": (pageNo - 1) * pageItems }, /* 注意参数的格式和名称 */
contentType: "application/x-www-form-urlencoded",
dataType: "xml",
error: function (result) {
alert(result.responseText);
},
success: function (data) {
MaxPage = $(data).find('gbook').size();
t = "<table border='1'>";
$(data).find('gbook').each(function (index, ele) {
var id = $(ele).find('id').text();
var title = $(ele).find('title').text();
var name = $(ele).find('name').text();
var time = $(ele).find('time').text();
var content = $(ele).find('content').text();
var reptime = $(ele).find('reptime').text();
var repcontent = $(ele).find('repcontent').text();
t += "<tr>";
t += "<td>" + id + "</td>";
t += "<td>" + title + "</td>";
t += "<td>" + name + "</td>";
t += "<td>" + time + "</td>";
t += "<td>" + content + "</td>";
t += "<td>" + reptime + "</td>";
t += "<td>" + repcontent + "</td>";
t += "<td> <input type=button value='删除留言' onclick='deleteData(" + id + ")'/></td><td><input type=button value='回复留言' onclick='replayData(" + id + ")'/></td>";
t += "</tr>";
})
t += "</table>";
t += "<div><a href='' onclick='showPage(-1);return false;'>上一页</a> <a href='' onclick='showPage(1);return false;'>下一页</a></div>"
$("#result").html(t);
}
});
} function deleteData(id) {
$.ajax({
type: "POST",
cache: false,
url: "WebService.asmx/Delete", /* 注意后面的名字对应CS的方法名称 */
data: { "id": id }, /* 注意参数的格式和名称 */
contentType: "application/x-www-form-urlencoded",
dataType: "text" }); $(document).ready(function () {
getData();
});
} </script>
[WebMethod]
public System.Data.DataSet Delete(int id)
{
System.Data.SqlClient.SqlConnection sqlCon = new SqlConnection();
sqlCon.ConnectionString = "server=.;uid=sa;pwd=sa;database=guestbook";
//定义SQL语句
string SqlStr = "delete from gbook where id=" + id;
//实例化SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(SqlStr, sqlCon);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
} <script type="text/javascript">
var pageNo = 1; //当前页号
var pageItems = 3; //每页显示的行数,这个数字与da.Fill(ds,pageNo,3,"gbook");里面的3保持一致
var MaxPage = pageItems; function showPage(m) {
if (m == -1) {
if (pageNo < 2) {
alert("已经到了首页");
return;
};
MaxPage = pageItems;
}
else {
if (MaxPage < pageItems) {
alert("已经到了末页");
return;
};
}
pageNo += m;
getData();
}
$(document).ready(function () {
getData();
});
function getData() {
$.ajax({
type: "POST",
cache: false,
url: "WebService.asmx/Select", /* 注意后面的名字对应CS的方法名称 */
data: { "pageNo": (pageNo - 1) * pageItems }, /* 注意参数的格式和名称 */
contentType: "application/x-www-form-urlencoded",
dataType: "xml",
error: function (result) {
alert(result.responseText);
},
success: function (data) {
MaxPage = $(data).find('gbook').size();
t = "<table border='1'>";
$(data).find('gbook').each(function (index, ele) {
var id = $(ele).find('id').text();
var title = $(ele).find('title').text();
var name = $(ele).find('name').text();
var time = $(ele).find('time').text();
var content = $(ele).find('content').text();
var reptime = $(ele).find('reptime').text();
var repcontent = $(ele).find('repcontent').text();
t += "<tr>";
t += "<td>" + id + "</td>";
t += "<td>" + title + "</td>";
t += "<td>" + name + "</td>";
t += "<td>" + time + "</td>";
t += "<td>" + content + "</td>";
t += "<td>" + reptime + "</td>";
t += "<td>" + repcontent + "</td>";
t += "<td> <input type=button value='删除留言' onclick='deleteData(" + id + ")'/></td><td><input type=button value='回复留言' onclick='replayData(" + id + ")'/></td>";
t += "</tr>";
})
t += "</table>";
t += "<div><a href='' onclick='showPage(-1);return false;'>上一页</a> <a href='' onclick='showPage(1);return false;'>下一页</a></div>"
$("#result").html(t);
}
});
} function deleteData(id) {
$.ajax({
type: "POST",
cache: false,
url: "WebService.asmx/Delete", /* 注意后面的名字对应CS的方法名称 */
data: { "id": id }, /* 注意参数的格式和名称 */
contentType: "application/x-www-form-urlencoded",
dataType: "text" }); $(document).ready(function () {
getData();
});
} </script>
public String Delete(int id)
{
System.Data.SqlClient.SqlConnection sqlCon = new SqlConnection();
sqlCon.ConnectionString = "server=.;uid=sa;pwd=sa;database=guestbook";
//定义SQL语句
string SqlStr = "delete from gbook where id=" + id;
//实例化SqlDataAdapter对象
sqlCon.Open();
SqlCommand cmd = new SqlCommand(SqlStr,sqlCon);
int ret = cmd.ExecuteNonQuery();
sqlCon.Close():
if(ret > 0) return "删除成功";
return "删除失败";
}
function deleteData(id) {
$.ajax({
type: "POST",
cache: false,
url: "WebService.asmx/Delete", /* 注意后面的名字对应CS的方法名称 */
data: { "id": id }, /* 注意参数的格式和名称 */
contentType: "application/x-www-form-urlencoded",
dataType: "xml",
success:function(data)
{
ret= $(data).text();
//判断 ret 删除成功再决定是否刷新getData();
getData();
} });