PDA

View Full Version : سوال: چگونه مي توان در یک static method به کنترلهاي فرم دسترسي داشت



ParsaNM
شنبه 31 اردیبهشت 1390, 13:05 عصر
من مي خواهم در هنگام زدن کليدي بر روي يک Textbox متدي رو بر روي codebihinde اجرا کنم ..!
خوب با استفاده از دستورات java script و استفاده از page methode ها اين کار رو بکنم در حال حاضر به اينصورت که در keydown textbox من يک function دارم که يک pagemethod و اجرا ميکنه ... خوب تا اينجاش مشکلي نيست ...!
هر pagemethod بايد حتما static باشه بنابراين من به اجزاي فرمم دسترسي ندارم ...!
نظر شما چيه ؟ آيا ميشه تو يه static method به اجزاي فرم دستري پيدا کرد؟ (مخصوصا sqldatasource)

vzsoft
شنبه 31 اردیبهشت 1390, 15:27 عصر
سلام

با این کد می تونی به صفحه جاری دسترسی داشته باشی
به جای Page میتونی نام صفحه جاری رو بنویسی

(HttpContext.Current.Handler as Page).TextBox1.text

iman_ad
شنبه 31 اردیبهشت 1390, 20:35 عصر
امکانش وجود نداره دوست عزیز برای همین دقیقا استاتیک تعریف می شه شما نمی تونی به منابع غیر استاتیک دسترسی داشته باشی.
فرض دسترسی هم داشته باشی اگه قرار بود هر کنترل مقادیرش تغیرر بدی که دیگه نمی شد callback می شد می شد postback

ParsaNM
یک شنبه 01 خرداد 1390, 11:18 صبح
دوستان عزيز ممنون از راهنماييتون ...
من کد شما رو تست کردم کار مي کنه ولي تمام object هاي صفحه رو null ميده ... !

vcldeveloper
یک شنبه 01 خرداد 1390, 19:52 عصر
نظر شما چيه ؟ آيا ميشه تو يه static method به اجزاي فرم دستري پيدا کرد؟
من به اون بخشی که به ASP.NET مربوط میشه، کاری ندارم؛ چون توی تخصص من نیست. اما از نظر شی گرایی، یک متد static به متدهای instance دسترسی نداره؛ علتش هم ساده است، برای دسترسی به متدهای یک instance باید اون instance ساخته شده باشه و یک ارجاع هم بهش وجود داشته باشه؛ اگر شما بخواید در یک مند static یک instance method از یک کلاس رو فراخوانی کنید، باید ابتدا شی ایی از اون کلاس ساخته شده باشه، و متد static شما هم به اون شی دسترسی داشته باشه؛ یعنی مثلا اون شی هم به صورت یک static property تعریف شده باشه، یا اینکه به صورت پارامتر به اون متد static پاس داده شده باشه.