这几天在做DATALIST分页的时候遇到一个头大的问题 甚至一度让我觉得除了BUG 请各位大侠给指导
在照书上打例子的时候 书上将所有数据库对象都放入了一个方法里面 而我则将sqlconnection dataset sqldataadapter datatable等对象都作为全局变量放在了方法的外面 以方便我在其他的事件中调用 但是问题来了 datalist对象的edit模板不能用 点击commandname属性为edit的按钮时页面只是单纯的刷新一下而不是替换成edit模板 我已经给editcommand写了代码的啊,而我照着书上代码完完整整打 把SQLCONNECTION等放在方法里面实例化的时候就又可以用了,这个,有什么区别吗?
难道这些数据库操作的类都不能作为全局变量实例化的吗?

解决方案 »

  1.   

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                pagenum.Text = "1";
                bind();
            }
        }protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = e.Item.ItemIndex;
            bind();
        }
        protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
        {    }
        public int bind()
        {
            
          //DataSet myds;
            SqlDataAdapter msda;
            SqlConnection mydatacon = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["studyConnectionString"].ToString());
           // DataTable anouncement;上面这段代码我一开始是作为全局变量放在方法外面的
           // string strSelect = "select * from anouncement";
              msda = new SqlDataAdapter(strSelect, mydatacon);
              myds = new DataSet();
              msda.Fill(myds, "anouncement");
           // anouncement = myds.Tables["anouncement"];这段代码一开始我是放在page_load事件里面的
            int curpage = Convert.ToInt32(this.pagenum.Text);
            PagedDataSource pds = new PagedDataSource();
            pds.DataSource = anouncement.DefaultView;
            pds.AllowPaging = true;
            pds.PageSize = 10;
            pds.CurrentPageIndex = curpage - 1;
            firstpage.Enabled = true;
            previouspage.Enabled = true;
            nextpage.Enabled = true;
            lastpage.Enabled = true;
            if (curpage == 1) 
            {
                this.firstpage.Enabled = false;
                this.previouspage.Enabled = false;
            }
            if (curpage == pds.PageCount)
            {
                this.nextpage.Enabled = false;
                this.lastpage.Enabled = false;
            }
            ddlchoicepage.Items.Clear();
            for (int i = 0; i < pds.PageCount; i++)
            {
                ddlchoicepage.Items.Add((i+1).ToString());   
            }
            DataList1.DataSource = pds;
            DataList1.DataBind();
            return pds.PageCount;
        }以上程序时正常的 注释部分放到我说的地方edit模板就不能用了~~~