کنترلهای مخفی در ASP

:( شايد تابحال اين سؤال برايتان پپش آمده باشد كه صفت hidden در کنترلها چه كاربردی دارد و اصولا کنترلی كه مخفی باشد به چه دردی می خورد؟ من در اين مقاله سعی براين دارم كه با نشان دادن كاربردهايی از اين کنترلها، كارايی آنها را برايتان شرح دهم.

يك کنترل مخفی در اصل يك فيلد textbox است كه از ديد كاربر مخفی می ماند. اگر تاكنون برای صفحات وب برنامه نويسی كرده باشيد، حتما تاكنون به مواردی برخورد كرده ايد كه لازم بوده کنترلی برای دريافت اطلاعات از كاربر در صفحه قرار دهيد و درصورتی كه كاربر قبلا اين کنترل را submit كرده باشد، ديگر نيازی به نمايش آن کنترل نداشته باشيد. در واقع اگر كاربر قبلا اين کنترل را تكميل كرده باشد، ديگر نيازی نيست که اين کنترل نمايش داده شود.

برای اين منظور يك textbox مخفی با نام process و مقدار true در فرم مربوطه ايجاد كنيد.

<input type=hidden name=process value=true> :roll:

بعد action فرم حاوی آن کنترل را به همان صفحه قرار دهيد. در ابتدای شروع تگ Form مقدار متغير process را چك كنيد. اگر اين اولين باری باشد كه كاربر اين صفحه را مشاهده می كند، متغير process هيچ مقداری نداشته و خالی خواهد بود. اما اگر او قبلا کنترل شما را submit كرده باشد متغير process مقدار true خواهد داشت. در زير نمونه كدی را كه برای اين منظور بايد استفاده شود را آورده ام:

If Request.Form("process") Then
RunFunction
Else
Show MyForm
EndIf

دومين راه استفاده از کنترلهای مخفی، قرار دادن اطلاعاتی در کنترل ميباشد كه شما می خواهيد يا آنها از صفحه ای به صفحه ديگر منتقل كنيد و يا اطلاعاتی را كه خودتان بوجود آورده ايد (مثل UserId كه بعد از login كردن هر كاربر توليد می شود) بين صفحات انتقال دهيد.

جای ديگری كه در آنجا استفاده از کنترلهای مخفی رايج می باشد، در صفحاتی است كه تعداد خاصی از ركوردهای يك بانك اطلاعاتی را در يك صفحه نمايش داده و با استفاده از دكمه های Next و Prev امكان ديدن تعداد ركوردهای بعدی را درصفحه بعد، فراهم می آورند. برای اين منظور بعداز Submit كردن يك پرسش (يا فشردن يك دكمه مثل Next) نياز به رد كردن تعداد ركوردهايی كه تا صفحه قبل نمايش داده بوديم داريم. در اين روش وقتی كه كاربر روی دكمه Next، مثلا برای نمايش ۵۰ ركورد بعدی كليك می كند، تعداد ركوردهای گذشته را كه نمايش داده شده اند، توسط مقدار يك Textbox مخفی به آن صفحه می فرستيم. سپس از اين مقدار در عبارت SQL برای بدست آوردن ركوردهای موردنظر استفاده می كنيم.
:oops: 8)
:arrow: :idea:
:evil: :x
:D :)
 

xnux

Member
ممنونم

چون حال كردم ميخوام يه ماچ آبدارت بكنم
:p

اوهوي ... پر رو نشي ها
:roll:
 

pirooz

Member
peyman_666 گفت:
در اين روش وقتی كه كاربر روی دكمه Next، مثلا برای نمايش ۵۰ ركورد بعدی كليك می كند، تعداد ركوردهای گذشته را كه نمايش داده شده اند، توسط مقدار يك Textbox مخفی به آن صفحه می فرستيم. سپس از اين مقدار در عبارت SQL برای بدست آوردن ركوردهای موردنظر استفاده می كنيم.

ميشه لطف كنيد و بگيد دستور sql اي كه در آن به ركورد 51 (در مثالي كه زديد) منتقل مي‌شويم چيه؟
ممنون مي‌شم.
 

جدیدترین ارسال ها

بالا