Zdravím všechny, chtěl bych Vás poprosit o radu. Kamarád mne poprosil, jestli bych mu nemohl upravit web - malý eshop s knihami. Problém má v tom, že se mu na hlavní stránce vypisujou všechny produkty a stránka se mu tak načítá několik vteřin. Jelikož umím php a mysql, nabídl jsem se, že mu pomůžu. Až později jsem zjistil, že má web psaný v C#, ale řekl jsem si, že to snad nebude tak složité (představoval jsem si, že tam někam hodím LIMIT 20 a bude to). Když jsem koukl do zdrojáku, zjistil jsem, že tam vůbec nejsou klasické select dotazy ("SELECT * FROM..."), ale úplně něco jiného. Pomocí tutoriálu jsem začal chápat základy a došel jsem k názoru, že nejjedndoušší bude u gridview nastavit AllowPaging="true" a omezit výpis na např. 20 titulů. Zkompiloval jsem to, načítá se 20 titulů... paráda. Jenže, při překliknutí na další stránku mi to hází tuto chybu:
Prvek GridView grdArticles aktivoval událost PageIndexChanging, která nebyla zpracována.
Popis: Při provádění aktuálního webového požadavku došlo k neošetřené výjimce. Další informace o chybě a o jejím původu v kódu naleznete v trasování zásobníku.
Podrobnosti o výjimce: System.Web.HttpException: Prvek GridView grdArticles aktivoval událost PageIndexChanging, která nebyla zpracována.
Zdrojová chyba:
Při provádění aktuálního webového požadavku byla vygenerována neošetřená výjimka. Informace týkající se původu a umístění výjimky lze zjistit pomocí níže uvedeného trasování zásobníku výjimek.
Trasování zásobníku:
[HttpException (0x80004005): Prvek GridView grdArticles aktivoval událost PageIndexChanging, která nebyla zpracována.]
System.Web.UI.WebControls.GridView.OnPageIndexChanging(GridViewPageEventArgs e) +1321514
System.Web.UI.WebControls.GridView.HandlePage(Int32 newPage) +86
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +464
System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +207
System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
V praxi to asi znamená, že tam ručně musím nadefinovat co se stane když překliknu na to další tlačítko? Bohužel v tom zatím docela hodně plavu, takže nevím co a kam napsat :( Budu vám hrozně vděčný za jakékoliv rady.
|