PDA

View Full Version : صفحه بندی grideview



baranbahari1320
دوشنبه 02 بهمن 1391, 16:11 عصر
سلام
من grideview رو سفارشی کردم اما وقتی میخوام صفحه بندیش کنم رو خط grideview.databind(); خطا میده اگه منو راهنمایی کنید ممنون.

myazdani
دوشنبه 02 بهمن 1391, 16:16 عصر
سلام

چه موقعی این خطا رو میده.

کدتون رو قرار بدید

baranbahari1320
دوشنبه 02 بهمن 1391, 16:36 عصر
وقتی میخوام نتیجه جستجومو مشاهده کنم و روی دکمه command کلیک میکنم.
string conn = "server=(local);database=knews; Integrated security=SSPI;";
SqlConnection con = new SqlConnection(conn);
string date1 = DropDownList1.SelectedItem.ToString().Trim() + "/" + DropDownList2.SelectedItem.ToString().Trim() + "/" + DropDownList3.SelectedItem.ToString().Trim();
string date2 = DropDownList4.SelectedItem.ToString().Trim() + "/" + DropDownList5.SelectedItem.ToString().Trim() + "/" + DropDownList6.SelectedItem.ToString().Trim();
string command = "select * from tbknews where((datenews>='" + date1.Trim() + "') and (datenews<='" + date2.Trim() + "') and (accept='1')) order by datenews desc" ;
SqlCommand cmd = new SqlCommand(command, con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
GridView1.DataSource= dr;
GridView1.DataBind();
con.Close();

متن خطا:
[The data source does not support server-side data paging.

website.expert
دوشنبه 02 بهمن 1391, 16:51 عصر
با سلام،
دوست عزیز من یه نمونه CustomPaging دارم ولی با vb هست اگه به کارتون میاد بگید براتون بذارم.
اینم یه نگاه بکنید:
http://geekswithblogs.net/dotNETvinz/archive/2012/08/10/gridview-custom-paging-with-linq.aspx

baranbahari1320
دوشنبه 02 بهمن 1391, 16:58 عصر
اگه به حل مشکل من کمک میکنه ممنون میشم.

website.expert
دوشنبه 02 بهمن 1391, 17:03 عصر
[The data source does not support server-side data paging.
data sourceتون چی هست؟!

baranbahari1320
دوشنبه 02 بهمن 1391, 17:10 عصر
من از sql server استفاده میکنم.

myazdani
دوشنبه 02 بهمن 1391, 18:08 عصر
لطفا کدتون رو داخل بلوک قرار بدید خوندنش راحت تره

تا جایی که می دونم data reader رو نمی تونید به این شکل data source قرار بدید.
اینجوری بنویسید:

Datatablt Dt=new Datatable();
Dt.Load(Dr);
GridView1.DtataSource=Dt;
GridView1.DataBind();



موفق باشی

baranbahari1320
دوشنبه 02 بهمن 1391, 19:11 عصر
همین کاری رو که شما فرمودین انجام دادم درست شد اما وقتی رو صفحه دوم کلیک میکنم این خطا رو میده.



The GridView 'GridView1' fired event PageIndexChanging which wasn't handled.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: The GridView 'GridView1' fired event PageIndexChanging which wasn't handled.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:

[HttpException (0x80004005): The GridView 'GridView1' fired event PageIndexChanging which wasn't handled.]
System.Web.UI.WebControls.GridView.OnPageIndexChan ging(GridViewPageEventArgs e) +366
System.Web.UI.WebControls.GridView.HandlePage(Int3 2 newPage) +104
System.Web.UI.WebControls.GridView.HandleEvent(Eve ntArgs e, Boolean causesValidation, String validationGroup) +655
System.Web.UI.WebControls.GridView.RaisePostBackEv ent(String eventArgument) +245
System.Web.UI.WebControls.GridView.System.Web.UI.I PostBackEventHandler.RaisePostBackEvent(String eventArgument) +42
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +37
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +289
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4225

myazdani
دوشنبه 02 بهمن 1391, 19:23 عصر
بله
کاملا طبیعیه
شما تو رویداد PageIndexChanging مربوط به GridView خط زیر رو وارد کنید و باید دوباره به خصوصیت DataSource مقدار دهی کنید و متد DataBind رو فراخوانی کنید. برای اینکه مجبور نشید کدتون رو دوباره تکرار کنید می تونید کل روال رو داخل یه تابع بنویسید و هر جا که خواستید فراخوانی کنید:

GridView1.PageIndex = e.NewPageIndex;

baranbahari1320
دوشنبه 02 بهمن 1391, 19:35 عصر
ببخشید این روال رو یا قسمت مربوط به ایجاد کانکش و bind کردنش به بانک.
من بر سه اساس دارم جستجو میکنم تو یک صفحه.
تاریخ،عنوان،متن.با این اوصاف مشکلی پیش نمیاد.