PDA

View Full Version : محل تعریف متغییر در asp.net



سیروس مقصودی
یک شنبه 18 بهمن 1394, 14:51 عصر
با سلام

من asp.net رو تازه شروع کردم . میخواهم یک متغییر در داخل یک فرم تعریف کنم که تازمانی که از فرم خارج نشده ام آن متغییر در آن فرم شناخته شده باشد . من متغییرها را بعد از عنوان class تعریف میکنم و در قسمتهای مختلف فرم مقدار متغییرها عوض میشود ولی هنگامی که مثلا یک button را که در داخل فرم است را فشار میدهم فرم مربوط رفرش میشود و مقادیر کلیه متغییرها به حالت اولیه برمیگردند . برای حل این مشکل چه کاری بایستی انجام دهم محل تعریف متغییرها و نحوه تعریف متغییرها را که کل فرم آن را بشناسد چگونه است .

با تشکر ...

Davidd
یک شنبه 18 بهمن 1394, 14:59 عصر
سلام. چرخه عمر یک صفحه از رسیدن درخواست کاربر تا رندر کردن صفحه و ارسال آن به کاربر است. بنابراین با هر بار در خواست صفحه مجددا ساخته می شود و متغیرها مقداردهی می شوند.برای نگهداری یک متغیر بین درخواست های مختلف میتونی از Session استفاده کنی.

سیروس مقصودی
یک شنبه 18 بهمن 1394, 22:07 عصر
با تشکر

همانطور که قبلا گفتم من تازه کارم . نحوه استفاده از session چگونه است . آیا امکان دارد یک مثال بزنید .

با تشکر فراوان ...

LostOfMind
یک شنبه 18 بهمن 1394, 22:59 عصر
از متغییر استاتیک استفاده کن
private static string str;

bomb23
دوشنبه 19 بهمن 1394, 09:11 صبح
نحوه استفاده از سشن:


Session["MyVar"] = TextBox.text;

سیروس مقصودی
دوشنبه 19 بهمن 1394, 09:29 صبح
با تشکر

از session میتوان بجای متغییرها استفاده نمود . آیا در استفاده از sessionها محدودیتی وجود دارد ؟

با تشکر

سیروس مقصودی
دوشنبه 19 بهمن 1394, 09:32 صبح
وقتی private static string str; در قسمت page_load مینویسم . پیغام Compiler Error Message: CS1513: } expected ظاهر میشود .

bomb23
دوشنبه 19 بهمن 1394, 10:45 صبح
بله از متغییرها هم میتونید استفاده کنید تفاوتی نداره. ولی درد سرش بیشتره! برید یه کلاس استاتیک بسازید داخلش یه متغیره استاتیک بگیرید و مقدار دهیش کنید.

سیروس مقصودی
دوشنبه 19 بهمن 1394, 11:54 صبح
اگر یک کلاس استاتیک بسازم و چند متغییر استاتیک هم تعریف کنم این متغییرها در کل سیستم تعریف شده میشوند و در کل پروژه دخیل هستند . من میخواهم که فقط درون یک فرم یا یک کلاس این متغییرها تعریف شده باشند و فرمهای دیگر این متغییرها را نشناسند . و وقتی که در داخل page_load یک فرم متغییری را به اینصورت private static string str; تعریف میکنم پیغام Compiler Error Message: CS1513: } expected ظاهر میشود . محل تعریف متغییری که بتواند داخل یک فرم شناخته شود کجاست ؟
و هربار هم که فرم رفرش میشود مقدار متغییرها به حالت اولیه برنگردند .

با تشکر ...

LostOfMind
دوشنبه 19 بهمن 1394, 22:25 عصر
خارج از page_load متغیر رو تعریف کنید

سیروس مقصودی
سه شنبه 20 بهمن 1394, 08:26 صبح
با تشکر

همین کار را کردم ولی دیگه دستور IsPostBack رو قبول نمیکنه . من میخواهم هنگام رفرش فرم وقتی که IsPostBack=false هستش متغییرها تعریف شوند و هنگام رفرش دوباره فرم مقدار متغییرها تغییر نکند .