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

有关datalist分页后实现编辑错误有关问题

2011-12-23 
有关datalist分页后实现编辑异常问题我用datalist绑定分页数据源protectedvoidPage_Load(objectsender,Eve

有关datalist分页后实现编辑异常问题
我用datalist绑定分页数据源
protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                if   (!IsPostBack)
                {
                page   =   Request.QueryString[ "page "];
                param   =   Request.CurrentExecutionFilePath   +   "? ";

                CssPage   cp   =   new   CssPage(5); //自己写的分页类CssPage   用pagedatasource实现

                DataList1.DataSource   =   cp.GetRecords(consultAdapter.GetConsultByAskOne(mu.UserName),   page);//取得分页结果集
               
                DataList1.DataBind();                
                PageLink.InnerHtml   =   cp.GetLinkStr(page,   param);//取得分页字符串
                }
        }
在编辑事件中写:
protected   void   DataList1_EditCommand(object   source,   DataListCommandEventArgs   e)
        {
                DataList1.EditItemIndex   =   e.Item.ItemIndex;
                DataList1.DataBind();
        }
这样点编辑后出现异常,无数据显示;后来猜测是编辑时缺少指明的页数,所以做了下变通:
protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                page   =   Request.QueryString[ "page "];
                param   =   Request.CurrentExecutionFilePath   +   "? ";

                CssPage   cp   =   new   CssPage(5); //自己写的分页类CssPage   用pagedatasource实现

                DataList1.DataSource   =   cp.GetRecords(consultAdapter.GetConsultByAskOne(mu.UserName),   page);//取得分页结果集
                if   (!IsPostBack)
                {
                DataList1.DataBind();
                }                
                PageLink.InnerHtml   =   cp.GetLinkStr(page,   param);//取得分页字符串
        }
这样修改后,点编辑就正常显示;但是更新上还是没有完全正确:
protected   void   DataList1_UpdateCommand(object   source,   DataListCommandEventArgs   e)
        {
                int   ID   =   Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
                string   ask   =   ((TextBox)e.Item.FindControl( "TextBox1 ")).Text;
                DateTime   datetime   =   DateTime.Now;
                consultAdapter.UpdateOneAsk(ask,   datetime,   ID);


                DataList1.EditItemIndex   =   -1;
                DataList1.DataBind();
        }
执行更新后并没有马上显示出更新结果,需要重新跳转到当前页面一下才能看到更新结果。
请问这是为什么呢?通常看到的例子都是datalist未分页的,datalist分页后应该怎样实现编辑呢?

[解决办法]
cp这个类的查询sql语句是否都共享一个connection?如果是,请还是用局部变量,使用前开,使用完后close

热点排行