peyman_666
Member
شايد تابحال اين سؤال برايتان پپش آمده باشد كه صفت 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 برای بدست آوردن ركوردهای موردنظر استفاده می كنيم.
8)
:arrow:
:x
يك کنترل مخفی در اصل يك فيلد 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 برای بدست آوردن ركوردهای موردنظر استفاده می كنيم.
8)
:arrow:
:x