IsPostBack的问题

chenghj87 2009-05-06 05:05:32
我原来是xp系统,vs2008+sql2005 做了一个博客系统在pageload用ispostback来绑定数据库,运行完全没问题
但是后来换了vista,也是vs2008+sql2005,但是运行之前的博客时,点击页面按钮式(例如删除评论等)似乎不会跳到ispostback里面的那个绑定的方法。

这是一个删除评论的代码,现在删除评论之后不会重新加载了,本来xp下面可以的。。
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class Admin_Default : System.Web.UI.Page
{
private string sConnectionString = ConfigurationManager.ConnectionStrings["blogConnString"].ToString();
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack )
{
Bind();
}


}

private void Bind()
{
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(sConnectionString))
{
SqlDataAdapter da = new SqlDataAdapter("select * from wenzhang;select * from comment", conn);
da.Fill(ds);
}
ds.Relations.Add("relationsbetweenwenzhangandcomment", ds.Tables[0].Columns["blog_id"], ds.Tables[1].Columns["commentblog_id"]);
Repeater3.DataSource = ds;
Repeater3.DataBind();
}

protected void Repeater4_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "delcomment")
{
using (SqlConnection conn = new SqlConnection(sConnectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("delete from comment where comment_id=@commentid", conn))
{
cmd.Parameters.AddWithValue("@commentid", e.CommandArgument);
cmd.ExecuteNonQuery();

}
}
}
}
}
...全文
220 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang15120758055 2009-05-07
  • 打赏
  • 举报
回复
帮顶
vip_hjb 2009-05-06
  • 打赏
  • 举报
回复
删除后再绑定一下
emoheshang 2009-05-06
  • 打赏
  • 举报
回复
删除代码完那后,再调用一次那个绑定就ol
yiyeqiubo 2009-05-06
  • 打赏
  • 举报
回复
问题应该解决了吧~
结贴给分吧!
Adechen 2009-05-06
  • 打赏
  • 举报
回复
删除后调用一下Bind()
中年秃头大叔 2009-05-06
  • 打赏
  • 举报
回复
protected void Repeater4_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "delcomment")
{
using (SqlConnection conn = new SqlConnection(sConnectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("delete from comment where comment_id=@commentid", conn))
{
cmd.Parameters.AddWithValue("@commentid", e.CommandArgument);
cmd.ExecuteNonQuery();
Bind();

}
}
}
}
chen_ya_ping 2009-05-06
  • 打赏
  • 举报
回复
Page.IsPostBack 属性
获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。
如果是为响应客户端回发而加载该页,则为 true;否则为 false。


具体的楼主可以参考MSDN.
gyouyang 2009-05-06
  • 打赏
  • 举报
回复
在删除方法里面的最后用 Response.Redirect("删除页面");
chenghj87 2009-05-06
  • 打赏
  • 举报
回复
那里的写错了
net_xiaojian 2009-05-06
  • 打赏
  • 举报
回复

public partial class Admin_Default : System.Web.UI.Page
{
private bool mbRebind = false;
private string sConnectionString = ConfigurationManager.ConnectionStrings["blogConnString"].ToString();
protected void Page_PreRender(object sender, EventArgs e)
{

if (!IsPostBack || mbRebind)
{
Bind();
}


}

private void Bind()
{
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(sConnectionString))
{
SqlDataAdapter da = new SqlDataAdapter("select * from wenzhang;select * from comment", conn);
da.Fill(ds);
}
ds.Relations.Add("relationsbetweenwenzhangandcomment", ds.Tables[0].Columns["blog_id"], ds.Tables[1].Columns["commentblog_id"]);
Repeater3.DataSource = ds;
Repeater3.DataBind();
}

protected void Repeater4_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "delcomment")
{
using (SqlConnection conn = new SqlConnection(sConnectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("delete from comment where comment_id=@commentid", conn))
{
cmd.Parameters.AddWithValue("@commentid", e.CommandArgument);
cmd.ExecuteNonQuery();
mbRebind = true;
}
}
}
}
}



好像你发了俩个贴,那贴里面吧IsCallBack改成IsPostBack.
chenghj87 2009-05-06
  • 打赏
  • 举报
回复
重新点击这个页面就可以的,但是就是点删除按钮之后不会重新绑定,是不是系统问题啊,xp上做的时候完全可以,到了vista上就不行了
gyouyang 2009-05-06
  • 打赏
  • 举报
回复
你调用后还是一样么?
我以前也遇到过类似的问题,我是修改后他不绑定,后来调用一下就OK了
这样吧,你在转发到这个页面看看,看能不能够绑定
chenghj87 2009-05-06
  • 打赏
  • 举报
回复
删除事件那里调用,那用ispostback就没什么用了啊。
现在就是按删除的话,不会重新绑定数据库
hj5632 2009-05-06
  • 打赏
  • 举报
回复
不能删除 if (!IsPostBack )
BS每个服务器动作都会先进入PageLoad
所以每回都重新绑定一遍 ,
gyouyang 2009-05-06
  • 打赏
  • 举报
回复
删除事件的最后面哪里在调用一次 绑定方法
绝代坏坏 2009-05-06
  • 打赏
  • 举报
回复
if (!IsPostBack )
这里去掉就可以了。

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧