Prado и неговия page state

Имах проблеми с намирането и установяването на един бъг. Уебсайта се разработва с Prado фреймуорк-а на последна версия. Екстенднал съм TPage класа и използвам моя MTPage клас. Там имам функция използвана от TDropDownList с AutoPostBack  при смяна избрания елемент, а самата функция изпълнява следното: $this->Response->reload(). Този  TDropDownList е в MainLayOut.tpl файла, защото трябваше да присъства на всяка страница, но бях забравил да използвам следния синтаксис при биндването:

if (!$this->Page->IsPostBack && !$this->Page->IsCallBack)
{
// do it here
}

Това е причината, когато събмитвах друг TDropDownList на страницата, той изпъляваше и кода във въпросната функция описана по-горе, което води до опресняване на страницата. Глупаво …

Ok може би се чудите защо заглавието на поста е свързано с page state – исках просто да споделя моето скромно мнение за page state идеята, която ми бе напомнена от този проблем. Наистина намирам този фиичър за доста полезен, взет от ASP.NET и разбира се има някои проблеми, когато се налага да държи повече информация – главно от гледна точка на перформантността. Но от друга страна по-този начин могат да се спестят допълнителн заявки към базата – като ситуацията по-горе – заявка за попълване на дропдауна. Друга много добра възможност е използването му като сторидж на важни променливи, на които програмиста може да разчита, че не могат да бъдат пипани от крайния потребител, а това е именно поради енкрипцията на данните.

Прочети статията на: English

  1. Все още няма коментари.

  1. Все още няма нито един trackback.