آژانس هواپیماییexchanging

چن صفحه ای کردن GridView

شروع موضوع توسط fivestar ‏11 آگوست 2007 در انجمن asp , ASP.NET

  1. fivestar

    fivestar Registered User

    تاریخ عضویت:
    ‏14 نوامبر 2006
    نوشته ها:
    73
    تشکر شده:
    0
    قبل از اینکه سوالم رو مطرح کنم بگم که تو این فروم و جاهای دیگه در مورد سوالم مطلب زیاد دیدم ولی نتونستم جوابم رو پیدا کنم !!

    ( اگر بخوایم با لود شدن صفحه دیتا ها تو GridView چند صفحه ای نشون داده بشه ، میتونیم از کنترل asp:SqlDataSource تو قسمت Design صفحه استفاده کنیم که امتحان کردم و جواب داد )


    تو صفحه یه دکمه داریم که وقتی کلیک میشه GridView دیتا ها رو تو چند صفحه نشون میده.

    صفحه اول درست نشون داده میشه ولی وقتی میخوام برم به صفحه دوم، GridView غیب میشه !!!!!!!!!

    برای رخداد PageIndexChanging هم کد زیر رو نوشتم :

    کد:
    protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                GridView.PageIndex = e.NewPageIndex;
                           GridView.DataBind();
            }
    
    خاصیت AllowPaging رو هم برابر True قرار دادم ولی باز میخوام برم به صفحه دوم، GridView غیب میشه !!!!!

    مشکل کجاست ؟
     
  2. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    میشه کد رو کامل بنویسید
     
  3. fivestar

    fivestar Registered User

    تاریخ عضویت:
    ‏14 نوامبر 2006
    نوشته ها:
    73
    تشکر شده:
    0
    کد:
    public void BindGridView()
        {
            string CS = (string)ConfigurationManager.AppSettings["ConString"];
            SqlConnection Cnn = new SqlConnection(CS);
    
            string strsql = "select * from T1 ";
    
            SqlDataAdapter SDR = new SqlDataAdapter(strsql, Cnn);
            
            try
            {
                Cnn.Open();
    
                DataSet DS = new DataSet();
                SDR.Fill(DS, "T1");
                GridVeiw.DataSource = DS.Tables["T1"].DefaultView;
                GridVeiw.DataBind();
            }
            catch (SqlException ex)
            {
                Response.Write(ex.Message.ToString());
            }
            finally
            {
                
                if ((Cnn.State != ConnectionState.Closed)) Cnn.Close();
            }
    
        }
    
    
        protected void Button1_Click(object sender, EventArgs e)
        {
            BindGridView();
        }
    
    
        protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridVeiw.PageIndex = e.NewPageIndex;
            GridVeiw.DataBind();
        }
    
    
    
    

    خاصیت AllowPaging برابر True است . فقط وقتی می خوام برم به صفحه دوم ، GridView غیب میشه !!!!

    راستی dataSource به GridView اختصاص ندادم

    مشکل کجاست ؟؟
     
  4. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    فکر میکنم مشکل اینجاست که در protected void GridView_PageIndexChanging
    شما از GridVeiw.DataBind استفاده کردید و چون datasource وجود نداره ، خوب به چی bind کنه ؟
    اون datasource که یه بار به gridview دادید در یک scope دیگه بوده و به این تابع ، مقداری بر نمیگردونه
     
  5. fivestar

    fivestar Registered User

    تاریخ عضویت:
    ‏14 نوامبر 2006
    نوشته ها:
    73
    تشکر شده:
    0
    دمت گرم . درست میگی . جواب رو پیدا کردم

    باید اینجوری تغییر کنه :

    کد:
    protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
               
    BindGridView();
     GridView.PageIndex = e.NewPageIndex;
                           
            }