انجمن‌های فارس وب

نسخه کامل: مشکل با pageLoade
شما در حال بازدید از بایگانی ارسال های انجمن هستید این نسخه کامل نیست : برای مشاهده نسخه کامل اینجا کلیک کنید
سلام
من دارم یه فرم برای ثبت نام دانشجویان درست می کنم و می خوام شماره دانشجویی برای دانشجویان توسط برنامه درست شود.کدشو پیدا کردم و اونو در pageLoade گذاشتم.
وقتی دفعه ی اول این صفححه ی ثبت نام ظاهر می شود ،فیلد شماره دانشجویی برای ثبت نام دانشجوی جدید از قبل داخل text box وجود دارد .مشکلم اینجاست که وقتی بقیه ی مشخصات پر شد و دکمه ی ثبت زده شد،بار دوم که صفحه ظاهر می شود ،TextBox شماره دانشجویی خالی است(در صورتیکه من می خوام هر وقت صفحه ظاهر می شود ،آخرین شماره ی دانشجویی را از جدول بگیرد و یک شماره به آن اضافه کند و آن را برای ثبت نام دانشجوی جدید در text Box مربوطه نشان دهد.)
این سوال برام مطرح شده که وقتی دکمه ثبت زده میشه و اطلاعات فرستاده میشه ،مگه دوباره رویداد pageLoade فراخوانی نمی شود؟
(البته من اون کدایی که شماره دانشجویی را تولید می کنند را داخل یه تابع گذاشتم و آخر کدای دکمه ی ثبت ،اون تابع را فراخوانی می کنم ولی همچنان فیلد شماره دانشجویی خالی است،مگر اینکه صفحه ی ثبت نام را ببندم و دوباره باز کنم)

مشکل از کجاست؟
وقتی شما صفحه را submit میکنید، رویداد postback اتفاق می‌افتد بنابراین برای این کار داخل رویداد page load از شرط if postback=true استفاده کنید و تابع مربوطه را داخل این شرط فراخوانی کنید.

نقل قول:
قتی شما صفحه را submit میکنید، رویداد postback اتفاق می‌افتد بنابراین برای این کار داخل رویداد page load از شرط if postback=true استفاده کنید و تابع مربوطه را داخل این شرط فراخوانی کنید.

من این کد را در Page load نوشتم ولی باز هم همان مشکل قبلی وجود داشت:نه

if (IsPostBack)
            {
                user_as_id_teacher();

        

    }



یه سوالی که هنوز برای من مطرحه ،مگر وقتیکه که دکمه ی ارسال زده میشه page load دوباره فراخوانی نمیشه؟اگر اینطور است پس چرا باید از IsPostBack استفاده کنیم و اگر برقرار بود تابع را فراخوانی کنیم.منظورم اینه در هر حال PageLoade با زدن دکمه ی ارسال اتفاق می افتد.چرا اون شرط را چک می کنیم؟

page load هنگام لود صفحه اجرا میشه. postback موقعی true میشه که شما روی دکمه ای کلیک کنید و صفحه دوباره لود شه و اولین بار که صفحه لود میشه postback مقدار false دارد.
برای مثال وقتی که کد Label1.Text = Date.Now رو داخل رویداد page_load قرار بدیم هر وقت دکمه ای روی صفحه کلیک بشه lable1 زمان کنونی رو نشون میده.
واسه رفع مشکلت کد صفحه رو کامل بزار تا بتونیم بهتر راهنماییت کنیم.

نقل قول:
page load هنگام لود صفحه اجرا میشه. postback موقعی true میشه که شما روی دکمه ای کلیک کنید و صفحه دوباره لود شه و اولین بار که صفحه لود میشه postback مقدار false دارد.


من هنوز متوجه نشدم ،خیلی با این مورد مشکل دارم غمگین شما قبول دارید که اگر دکمه فشار داده بشه ،هم pageLoad و هم postback دوباره اتفاق می افتد؟

اگر جوابتان مثبت است ،پس به نظر من نوشتن postback بی مورد است.چون pageLoad کار Postback را هم انجام می دهد.

مشکل من حل نشد.کدو ضمیمه کردم.ممنون از وقتی که صرف کردید.

[ويرايش شد] به دليل رنگ ها واندازه هاي مختلف متون لطفاً يك دست بودن متون رو حفظ كنيد!

این خط از کد داخل رویداد Button1_Click[/quote] رو حذف کن.

txtUserName.Text = "";

نقل قول:
این خط از کد داخل رویداد Button1_Click

رو حذف کن.[/quote]

هر چند به این ربطی نداشت ولی حذفش کردم شوکه،این دفعه وقتی صفحه دوباره بالا میاد ،این TextBox همون شماره ی قبلی را نشان میدهد.چون پاک نشده .نه

اگه ربطی نداشت که باز هم باید اون تکس باکس خالی میموند!
برای حل این مشکل هم بهتره تو فرم لود ispostback چک بشه، و وقتی فالس بود یعنی اولین بار هستش که صفحه داره لود میشه پس با همون کدی که نوشتی میتونی کار کنی. اما باید برای دفعاتی که فرم دوباره به وسیله‌ی کلیک روی دکمه لود میشه به جای اینکه کد مربوط به گرفتن بزرگترین شماره آی دی رو در فرم لود بنویسی، اون رو در انتهای رویداد کلیک دکمه بنویسی.
البته راه‌های دیگه‌ای هم وجود داره که اگه روش فکر کنی حتما به جواب می رسی.
موفق باشی!
مرجع آدرس ها