PDA

View Full Version : کار نکردن Session در Page_Load



majid_darab
دوشنبه 16 فروردین 1389, 15:16 عصر
با سلام بر شما دوستان عزیز و گرامی :
من نمی دونم چرا کد زیر برای بار اول که وب سایت رودر بروزر باز می کنم کار نمی کنه و پس از اینکه صفحه کامل لود شد در پست بک های بعدی کار می کنه...
اما کد :


string Teststr = Convert.ToString(Session["Co_ID"]);

اما چرا از Convert.ToString استفاده کردم ، چون این متد می تونه مقدار null رو قلاب کنه و اگر از ()ToString استفاده می کردم به خاطر اینکه برای بار اول که صفحه میخواد لود بشه مقدار Session نال است با ارور زیر روبرو می شدم :

(Object reference not set to an instance of an object.)

اما سوال اینجاست که چرا مقدار این Session برای بار اول که صفحه میخواد لود شه نال است؟
این Session مربوط به لاگین کردن یوزرها است و زمانی که طرف لاگین کرده باشه و گزینه ی مربوطه برای این Session رو فعال کرده باشه دفعه ی بعد که میخواد به صفحه ی مورد نظر بره نیازی به لاگین نداره و خود به خود اطلاعات لازم از تو Session خوانده می شوند .
پس زمانی که صفحه رو در بروزر باز می کنم و بدون لاگین مجدد وارد صفحه ی مزبور می شوم این یعنی اینکه session ما وجود داره و نباید مشکلی براش پیش اومده باشه

اما چرا گفتم این session در پست بک ها درست عمل می کنه ...
یک Button گذاشتم تو صفحه و عین کد بالا رو توش گذاشتم ...
وقتی باتن کلیک میشه این کد هم در Page_Load هم در باتن درست عمل می کنه و مقداری رو که می خوام بهم نشون میده
اما در مورد WebPageMarkup باید بگم که در صفحه ی مزبور به قرار زیره :


<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/AdminBackend.Master" AutoEventWireup="true"
CodeBehind="Personel.aspx.cs" Inherits="Darman.Admin.Personel" Theme="DefaultTheme" %>


ودر مستر پیج به قرار زیره :


<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="AdminBackend.Master.cs"
Inherits="Darman.Admin.AdminBackend" %>


با تشکر از همراهی شما

Peyman.Gh
دوشنبه 16 فروردین 1389, 15:22 عصر
چرا در Page_Load ؟!

کاربر از کدام صفحه لاگین میکند و به کدام صفحه میرود ؟!

majid_darab
دوشنبه 16 فروردین 1389, 17:15 عصر
سلام :
با عرض معذرت - مشکل حل شد
اما چرا در Page_Load :
من در فرم گریدی دارم که بالای اون میخوام اطلاعاتی رو در لیبل نشون بدم و برای پر کردن این لیبل ها به Page_Load نیاز دارم
اما مشکل چی بود؟
من این Session رو در userControl ی که در مستر پیج این پیج ساخته بودم پر می کردم و خوب چون زمان زیادی از نوشتن کد این قسمت می گذشت یادم رفته بود و در ثانی من این Session رو با اطلاعات مربوط به Authenticate قاطی کرده بودم - در حالی که این دو به هم ربطی نداشتند و من سشن Co_ID را از روی اطلاعات Authenticate پر میکردم
خوب همان طور که می دونیم اول page_Load فرم بچه ، بعد Page_Load فرم مامان (مستر) و بعد Page_Load یوزرکنترل داخل مامان اجرا می شد و در نتیجه سشن Co_ID که اونو تو یوزر کنترل پر می کردم در Page_Load فرم مزبور نال نشون میداد:گیج:
این کاری که برای این ["Session ["Co_ID انجام دادم بد نیست و درتمام فرم های بچه قابل استفاده است ، اما فکر نمی کردم اینجا خرمو بگیره

با تشکر از توجه شما