PDA

View Full Version : سوال: دسترسی به مقادیر داخل کد در صفحه ASP.net



raziee
سه شنبه 15 دی 1388, 21:48 عصر
با سلام
اگه من در کدم متغیری داشته باشم چه جوری میتونم در صفحه از مقدار اون متغیر استفاده کنم؟
مثلا در کد یه متغییر از نوع String تعریف کردم و یه مقدار داخلش قرار دادم. حالا میخوام در لیبلی که در صفحه دارم از اون استفاده کنم(اون مقدار رو به Text لیبل نسبت بدم)
توجه کنید که من میخوام در خود صفحه ی asp.net این انتساب صورت بگیره .
مثلا:

<asp:Label ID="Label1" runat="server"
Text="<%$متغیر %>" />
ممنون

مهدی کرامتی
چهارشنبه 16 دی 1388, 07:05 صبح
به شرطی می توانید این کار را انجام دهید که
1- متغیر در سطح کلاس (و نه داخل متدها/Property ها) تعریف شده باشد.
2- سطخ دسترسی متغیر مذکور private نباشد.

raziee
چهارشنبه 16 دی 1388, 19:36 عصر
ممنون از راهنماییتون اما:
من این متغیری رو در سطح کلاس دارم:

protected string myName = "HosseinRaziee";
و در صفحه هم:

<asp:Label ID="Label1" runat="server"
Text="<%# myName %>" />
اما انجام نمیشه!!:اشتباه:

صفحه خوب از کد ها ارث برده بنابر این protected به Public تغییر میکنه اما بازم نمیشه اگه نوع داده رو Public هم تعریف کنم بازم نمیشه.

میشه محبت کنید یه نمونه کد بدید.
مرسی

مهدی کرامتی
چهارشنبه 16 دی 1388, 19:43 عصر
در این حالت میبایست به رویداد Page_Load تون کد ()Label1.DataBind رو اضافه کنید.

raziee
چهارشنبه 16 دی 1388, 20:28 عصر
ممنون استاد.
اما یه سوال دگیه در همین ضمینه.
آیا راهی هست که بدون نیاز به نوشتن کد DataBind بشه این رو پیاده سازی کرد؟
من قصد دارم برای یک سایت چند زبانه (خود زبان ها در فایل xml هست ) کلاسی ایجاد کنم که به در داخل صفحه به متد ها دسترسی داشته باشم. تا اینجا مشکلی نیست اما مشکل اینجا پیش میاد که اگه در یگ صفحه 10 لیبل مثلا داشته باشیم نمیشه برای همه ی اون لیبل ها کدDataBind رو نوشت. و همینطور نمیشه از Page.DataBind(); استفاده کرد چون ممکنه در اون صفحه مثلا گریدویویی داشته باشیم.

آیا راه ارتباطی جز این هست که بشه بدون کد DataBind این کار رو پیاده سازی کرد.
ممنون

iman_ad
چهارشنبه 16 دی 1388, 20:36 عصر
منم این مشکل برای کنترلهای دات نتی دارم برای کنترلهایی که آتریبوت runatserver ندارند می تونی از

<%=myvariable%>
استفاده کنی