PDA

View Full Version : این ارور علتش چیه؟؟؟



hamhik
جمعه 13 بهمن 1385, 11:16 صبح
با سلام
من 4 تا صفحه دارم که در هر یک از این 4 صفحه یک label دارم حالا این label برای چیه؟این label کارش اینه که وقتی کاربر وارد شد یعنی login اون با موفقیت انجام شد از طریق querystring به کاربر خوش آمد می گه. نام های این 3 صفحه اینه login(که کاربر در این صفحه یوزر و پسورد خودش رو وارد می کنه)default(که اگه کاربر با موفقیت login شد وارد این صفحه می شه و
یک موضوع رو می تونه انتخاب کنه)display(با توجه به این که کاربر چه موضوعی رو انتخاب کرده سوالات کاربران در این قسمت نمایش داده می شوند)question(که این صفحه وقتی می آید که کاربر بر روی موضوع جدید کلیک نماید) تا وقتی که وارد صفحهquestion نشدم سیستم
هیچ اروری نمی گیره ولی وقتی وارد می شم بعد از گذر 20 25 ثانیه به قسمت page_load صفحه ی default ارور می گیره حالا تو
این قسمت چی نوشتم
page_load
lbluser.text=request.querystring["myuser"].tostring
end sub
و سیستم این ارور رو می ده
object reference not set to an instance of an objectالبته اینم باید بگم که من در صفحه ی چهارم هنوز از querystring استفاده نکردم و نام کاربر را به این ثفحه نفرستادم پس چه دلیلی داره
که با آمدن به صفحه ی چهارم(question) ارور می گیره؟؟؟

someCoder
جمعه 13 بهمن 1385, 11:19 صبح
من VB که بلد نیستم ولی اگر #C بود، میگفتم قبل از استفاده از QueryString چک کن ببین null نباشه

hamhik
جمعه 13 بهمن 1385, 11:23 صبح
null نیست مقدار داره

someCoder
جمعه 13 بهمن 1385, 11:33 صبح
تو این کدی که نوشتی که چک نکردی

hamhik
جمعه 13 بهمن 1385, 12:51 عصر
این مشکل رو تونستم حل کنم مشکل این جا بود که باید این خط if page.ispostback=true thenرا به page_load صفحه ی defaultاضافه می کردم ولی با این حال نمی دونم چه ربطی داره به صفحه چهارم ؟؟
اما با اضافه کردن این خط مشکل جای دیگری بوجود اومد و اونم این که وقتی کاربر می ره به صفحه ی default یعنی اولین صفحه ای که کاربر وقتی login می شه نمایش داده می شه label ی که باید نام کاربر رو در آن نشان بده خالیه در صورتی که اگه من page.ispostback رو ننویسم می بینمش و با رفتن در صفحه ی چهارم خطا می ده ولی وقتی بنویسم در صفحه ی default
خالیه مشکلش این بار چیه؟؟؟

samanes
جمعه 13 بهمن 1385, 13:12 عصر
خوب این مشکل دومش مشخصه.. رویداد page_Load ات وقتی انجام میشه که صفحه postBack شه چون نوشتی if page.ispostback = true
در حالی‌ که وقتی از صفحه Login وارد صفحه default میشی صفحه postback نمیشه..
postback زمانی اتفاق میفته که اطلاعاتی بین سرور و کلاینت رد و بدل شه و صفحه عوض نشه.
مثل زمانی که در صفحه روی‌ دکمه ای کلیک می کنی.
در مورد سوال اولتم اگر راجع به پروژت بیشتر توضیح بدی, شاید بتونم کمکت کنم.

hamhik
جمعه 13 بهمن 1385, 13:23 عصر
مشکل حل شد اما نمی دونم این روش عاقلانه س برای رفع این مشکل یا نه؟؟؟اینا رو تو قسمت page_losd صفحه ی default نوشتم

On Error GoTo errorlabel
If Page.IsPostBack = False Then
lbluser.Text = Request.QueryString("myuser").ToString()
End If
errorlabel: If Page.IsPostBack = True Then
lbluser.Text = Request.QueryString("myuser").ToString()
End If

hamhik
جمعه 13 بهمن 1385, 14:52 عصر
فک می کنم متوجه شدن چون جواب سوالمو دادن ولی خودم زودتر به جواب رسیدم حالا سوالم باز اینه که آیا این روشی که برای رفع مشکلم انتخاب کردم بدرد بخور است؟؟
On Error GoTo errorlabel
If Page.IsPostBack = False Then
lbluser.Text = Request.QueryString("myuser").ToString()
End If
errorlabel: If Page.IsPostBack = True Then
lbluser.Text = Request.QueryString("myuser").ToString()
End If
دیگه نمی دونم چطوری توضیح بدم؟؟؟؟شرمنده