آموزش پیشرفته ASP.Net Web Forms ارسال پارامتر با استفاده از Query String
787 بار بازدید -
3 سال پیش
-
به نام خدا با یک
به نام خدا با یک قسمت آموزشی دیگه از سری آموزش های ASP.Net در خدمت شما عزیزان هستیم.در این قسمت از آموزش قصد داریم در مورد ارسال پارامتر از یک صفحه به صفحه دیگه (ارسال یا تبادل پارامتر بین صفحات وب) با استفاده از Query String صحبت کنیم.نکته ای که باید در ابتدای کار گفت این هست که معاری یک Web Application با معماری Windows Application کاملا متفاوت هست و به اون شکلی که شما در یک Windows Application پارامترها را به صفحات دیگر ارسال میکردید ، در معماری Web Application شما نمیتونید به این شکل عمل کنید و روش ارسال پارامتر بسیار متفاوت از Web Application میباشد.در Web Application ارسال پارامتر بین صفحات چندین روش دارد که معماری و اساس عملکرد همه روش ها یکیست. از قبل در محیط ویژوال استودیو visual studio یک پروژه جدید از نوع ASP.Net Web Application ایجاد کرده ایم.از قسمت Solution Explorer روی نام پروژه راست کلیک میکنیم و تو روت سولوشن یک پوشه جدید بنام Pages ایجاد میکنیم.حالا میخوایم داخل پوشه Pages دوتا فرم یا صفحه ایجاد کنیم و بین اون دوتا صفحه پارامتر ها را ارسال کنیم به همین منظور روی پوشه Pages راست کلیک میکنیم و یک Web Form بهش اضافه میکنیم.حالا میخوایم داخل فرم اولمون یک جدول ایجاد کنیم ، بنابراین از تگ table استفاده میکنیم.درون تگ table با استفاده از tr و td ، 4 سطر و 4 ستون به جدول مون اضافه میکنیم.الان سایز جدول ما کوچک هست ، ما میخواهیم جدول مون تمام صفحه رو دربر بگیره تا بتونیم راحت عناصر مختلف رو در هر قسمت از صفحه که میخوایم قرار بدیم.برای این کار باید از css استفاده کنیم ، ینابراین برای css هامون تو روت سولوشن یک پوشه بنام Content میسازیم و داخل Content هم یک پوشه بنام css میسازیم.و داخل پوشه css هم یک فایل css بنام sitecss اضافه یا Add میکنیم.تو فایل sitecss یک کلاس بنام mytable میسازیم و width = 100% میدیم.حالا برای اینکه فایل css مون به فرم مون لینک بشه ، از قسمت Solution Explorer فایل sitecss رو بوسیله Drop Drag میکشیم و داخل تگ head رها میکنیم تا با فرم مون لینک بشه.در مرحله بعد وارد تگ table میشیم و کلاس mytable رو فراخوانی میکنیم تا table مون استایل 100% بگیرد.مجددا وارد کلاس css مون میشیم و به کلاس mytable ویژگی راست چین (راست به چپ) رو میدیم یعنی direction : rtl تا جدولمون از راست به چپ چیده بشه.در گام بعدی میخوایم عناصری که میخواهیم رو روی مکان دلخواه از صفحه بچینیم بنابراین تو سطر اول و ستون اول کلمه "نام" رو مینویسیم و تو سطر اول و ستون دوم نیز یک تگ input که type اون از نوع text هست قرار میدیم و یه runat = server و id = Txtname هم بهش میدیم تا سمت سرور اجرا شود(تکست باکس html). مرحله بعدی تو سطر دوم و ستون اول و دوم هم مجددا مثل قبل کلمه "نام خانوادگی" و یک input text با id = TxtLastname و runat = server قرار میدیم.حالا واسه رمز عبور هم تو سطر سوم و ستون اول کلمه " رمز عبور " رو مینویسیم و تو ستون دومش هم یک کنترل TextBox از نوع asp قرار میدیم که این تکست باکس در قسمت Properties یک مشخصه بنام TextMode دارد که بصورت پیشفرض روی SingleLine (تک خط) قرار دارد ولی ما آنرا روی Password قرار میدیم.حالا اگه ما بخواهیم بجای تکست باکس asp از تکست باکس html استفاده کنیم باید یک تگ input که type اون از نوع Password و با id = Txtpass و runat = server بکار ببریم.در آخر یک Button از نوع asp هم قرار میدیم.درون پوشه Pages یک فرم جدید ایجاد میکنیم که بین این دوتا صفحه پارامتر ها را ارسال خواهیم کرد.در گام بعدی از کل تگ table در فرم 1 ، یک کپی در فرم 2 میگیریم.در فرم 2 تگ Button و تکست Password رو پاک میکنیم چون تو فرم 2 به این دوتا نیازی نداریم و فقط میخواهیم نام و نام خانوادگی را از فرم 1 به فرم 2 ارسال کنیم.در نتیجه در فرم 1 روی Button (دکمه send) دابل کلیک میکنیم تا ایونت کلیک ش باز شه و این کد رو داخلش میزنیم :
Response.Redirect("webform2.aspx?n="+Txtname.Value+"ln="+ TxtLastname.Value +);
کد بالا دوتا پارامتر n و ln رو از تکست باکس های فرم 1 میگیره و به فرم 2 ارسال میکنه.وارد فرم 2 میشیم و روی صفحه راست کلیک کنیم و روی گزینه view code کلیک کنیم تا به قسمت کدهای سمت سرور بره.حالا تو ایونت Page_Load این کدها رو میزنیم:
Txtname.Value = Request.QueryString("n");
TxtLastname.Value = Request.QueryString("ln");
کد بالا هم اون دوتا پارامتری رو که از فرم 1 ارسال شدن و در حال حاضر در url فرم 2 قرار دارند رو میگیره و داخل تکست باکس های فرم 2 میریزه.
3 سال پیش
در تاریخ 1400/04/28 منتشر شده
است.
787
بـار بازدید شده