首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

小弟我的datalist 里的Updata事件,要点2次更新按钮才行

2012-01-05 
我的datalist 里的Updata事件,要点2次更新按钮才行C# codeusing Systemusing System.Datausing System.C

我的datalist 里的Updata事件,要点2次更新按钮才行

C# code
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class Default2 : System.Web.UI.Page{   private string connStr = ConfigurationManager.ConnectionStrings["gbstr"].ToString();        protected void Page_Load(object sender, EventArgs e)    {                    int CurPage;            if (Request.QueryString["Page"] != null)                CurPage = Convert.ToInt32(Request.QueryString["Page"]);            else                CurPage = 1;            //连接数据库及将数据封装到一个数据集中            SqlConnection conn = new SqlConnection(connStr);            SqlDataAdapter adapter = new SqlDataAdapter("select * from Post", conn);            DataSet ds = new DataSet();            adapter.Fill(ds, "Post");            PagedDataSource ps = new PagedDataSource();            ps.DataSource = ds.Tables["Post"].DefaultView;            ps.AllowPaging = true;            //每个页面显示的条数            ps.PageSize = 5;            onepage.Text = ps.PageSize.ToString();            //求数据的总数            allmsg.Text = ps.DataSourceCount.ToString();            ps.CurrentPageIndex = CurPage - 1;            //求总页            allpage.Text = ps.PageCount.ToString();            allpages.Text = ps.PageCount.ToString();            nowpage.Text = CurPage.ToString();            //将数据源与控件绑定            this.DataList1.DataSource = ps;                        if (!IsPostBack)            {                    this.DataList1.DataBind();            }            //上一页            if (!ps.IsFirstPage)            {                firstpage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";                prepage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);            }            //下一页            if (!ps.IsLastPage)            {                nextpage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);                endpage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(ps.PageCount);            }      }              protected void BtnJump_Click(object sender, EventArgs e)    {        if (this.TxtPageNum.Text != null)        {            Response.Redirect(Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(this.TxtPageNum.Text));                   }    }    protected void BtnPost_Click(object sender, EventArgs e)    {        string _UserName = this.TxtName.Text;        string _UserPwd = this.TxtPwd.Text;        string _PostContent = this.TxtContent.Text;        string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["gbstr"].ToString();        SqlConnection myStr = new SqlConnection(connStr);        myStr.Open();        SqlCommand Insert = new SqlCommand("insert into Post(UserName,UserPwd,PostContent) values('" + _UserName + "','" + _UserPwd + "','" + _PostContent + "')", myStr);        Insert.ExecuteNonQuery();        Response.Redirect(Request.CurrentExecutionFilePath);     }    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)    {        this.DataList1.EditItemIndex = e.Item.ItemIndex;//编辑        this.DataList1.DataBind();                }      protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)    {        string id = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();        string postcontent = ((TextBox)e.Item.FindControl("TxtEdit")).Text;        //((TextBox)e.Item.FindControl("TxtEdit")).Attributes.Add("onchange()", "TextChange()");        SqlConnection conn = new SqlConnection(connStr);        conn.Open();        SqlCommand Update = new SqlCommand("update Post set PostContent='" + postcontent + "'where ID='" + id + "'", conn);        Update.ExecuteNonQuery();        this.DataList1.EditItemIndex = -1;        this.DataList1.DataBind();        Response.Redirect(Request.CurrentExecutionFilePath);             }    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)    {                string id = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();        SqlConnection conn = new SqlConnection(connStr);        conn.Open();        SqlCommand delcmd = new SqlCommand("delete from Post where ID='" + id + "'", conn);        //((TextBox)e.Item.FindControl("LbtnDelete")).Attributes.Add("onClick", "return confirm('" + "确认删除?" + "')");        delcmd.ExecuteNonQuery();        this.DataList1.DataBind();        Response.Redirect(Request.CurrentExecutionFilePath);     }} 



[解决办法]
??

[解决办法]
你是指点2次更新按钮才能编辑
还是点2次更新按钮才能修改数据?
[解决办法]
不是要点两次我估计,可能是引用了缓存页面,你点第一次应该成功了,但它读取得缓存页面。
你这句Response.Redirect(Request.CurrentExecutionFilePath)又把它引到缓存页面了。


[解决办法]
这个有问题是很正常的
 if (!IsLastPage)
{
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage = 1;
//连接数据库及将数据封装到一个数据集中
SqlConnection conn = new SqlConnection(connStr);
SqlDataAdapter adapter = new SqlDataAdapter("select * from Post", conn);
DataSet ds = new DataSet();
adapter.Fill(ds, "Post");

PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables["Post"].DefaultView;
ps.AllowPaging = true;
//每个页面显示的条数
ps.PageSize = 5;
onepage.Text = ps.PageSize.ToString();
//求数据的总数
allmsg.Text = ps.DataSourceCount.ToString();
ps.CurrentPageIndex = CurPage - 1;
//求总页
allpage.Text = ps.PageCount.ToString();
allpages.Text = ps.PageCount.ToString();
nowpage.Text = CurPage.ToString();
//将数据源与控件绑定

this.DataList1.DataSource = ps;
}
试试

热点排行