PDA

View Full Version : دسترسی به کنترل های یک صفحه aspx از یک کلاس



reza_rad
چهارشنبه 16 فروردین 1385, 10:49 صبح
سلام.
اگه تاپیک تکراریه بگید تا حذفش کنم ولی لینک بدید. من خودم خیلی گشتم ولی چیزی پیدا نکردم.
من می خوام از توی یک کلاس یه تغییراتی روی property های چند تا از کنترل های صفحه هام بدم. میشه بدون نیاز به pass کردن کنترل ها به کلاس اینکارو کرد؟
ممنون از لطفتون.

titbasoft
چهارشنبه 16 فروردین 1385, 11:26 صبح
برای این کار گاها راه حل های خاص وجود داره. مثلا اگر دارید render control می نویسید خودش page داره که از کالکشن controls اون می تونید استفاده کنید.
بعضی وقت ها هم ممکنه دسترسی مستقیم به کنترل های صفحه راه حل مناسبی نباشه. فکر کنم اگر سناریوی کاری که می خواهید انجام بدید رو بگید راحت تر بشه نظر داد.

reza_rad
چهارشنبه 16 فروردین 1385, 11:37 صبح
ممنون که جواب دادید.
من توی page هام تعدادی hyperlink دارم که بسته به شرایطی بعضی هاشون visible میشن و بعضی ها invisible و نمی خوام چک کردن شرایط توی هر صفحه تکرار بشه بلکه می خوام از یک متد در یک کلاس استفاده کنم.
شما چه راه حلی رو پیشنهاد می کنید؟

A.Noor
پنج شنبه 17 فروردین 1385, 12:52 عصر
در کلاس با HttpContext.Current می تونید به اشیای وب فرم فعالتون دسترسی داشته باشید
مثلا
If HttpContext.Current.Request.Browser.Cookies Then

titbasoft
پنج شنبه 17 فروردین 1385, 13:39 عصر
برای این جور کارها بهترین پیشنهاد ساختن یکی user control است. مثلا فرض کنید 4 تا لینک دارید که اگر کاربر admin نبود 2 تا از اونها رو نبینه. برای این کار یک user control بسازید و یک property مثلا isAdmin برای اون مشخص کنید. با استفاده از این property در user control چک کنید که 2 تا لینک secure شما نمایش داده بشن یا نه. حالا هر جایی که از اون user control استفاده می کنید (در هر صفحه ای) فقط کافیه که property ی isAdmin رو ست کنید.

من انشای خوبی ندارم اگر متوجه نشدید بیشتر توضیح بدم؟

reza_rad
شنبه 19 فروردین 1385, 12:42 عصر
ممنون.
آخه مشکل اینجاست که توی هر صفحه hyperlink های خاص خودش رو داره... فرمایش شما موقعی درسته که یکسان باشند.

حالا کلا راهی برای خوندنشون از کلاس نیست؟

اَرژنگ
شنبه 19 فروردین 1385, 13:08 عصر
ممنون.
آخه مشکل اینجاست که توی هر صفحه hyperlink های خاص خودش رو داره... فرمایش شما موقعی درسته که یکسان باشند.

حالا کلا راهی برای خوندنشون از کلاس نیست؟

به جایه اینکه از کلاس قابل دسترسی باشند، در آرگومنت به متد کلاس پاسش کن.

reza_rad
شنبه 19 فروردین 1385, 13:49 عصر
به جایه اینکه از کلاس قابل دسترسی باشند، در آرگومنت به متد کلاس پاسش کن.

ممنون که جواب دادید جناب آرژنگ.
راهی که می گید درسته ولی اگه تعداد hyperlink ها زیاد باشه ...

اگه راهی بود که می تونستم از کلاس بخونمشون بهتر بود.

به هر حال ممنونم دوستان از راهنمایی هاتون.

اگه راهی به نظرتون رسید ممنون میشم منو در جریان بگذارید.

اَرژنگ
شنبه 19 فروردین 1385, 14:00 عصر
ممنون که جواب دادید جناب آرژنگ.
راهی که می گید درسته ولی اگه تعداد hyperlink ها زیاد باشه ...

اگه راهی بود که می تونستم از کلاس بخونمشون بهتر بود.

به هر حال ممنونم دوستان از راهنمایی هاتون.

اگه راهی به نظرتون رسید ممنون میشم منو در جریان بگذارید.
مهم نیست چند تا Hyperlink دارید. ازSystem.Generic.Collection برایه آرگومنتتان استفاده کنید

reza_rad
یک شنبه 20 فروردین 1385, 08:31 صبح
مهم نیست چند تا Hyperlink دارید. ازSystem.Generic.Collection برایه آرگومنتتان استفاده کنید


بازم ممنون که جواب دادین.
میشه در موردش بیشتر توضیح بدین...
یعنی چی رو باید دقیقا استفاده کنم توی متد و آرگومان؟ چه جوری از این system.generic.collection استفاده کنم؟

بازم ممنون.