ASP.NET - راهنمای سریع قسمت یک

ASP.NET - مقدمهASP.NET چیست؟ASP.NET یک پلت فرم توسعه وب است که یک مدل برنامه نویسی، یک زیرساخت نرم افزاری جامع و خدمات مختلف مورد نیاز برای ایجاد برنامه های کاربردی وب قوی برای رایانه شخصی و همچنین دستگاه های تلفن همراه را ارائه می دهد.ASP.NET در بالای پروتکل HTTP کار می کند و از دستورات و سیاست های HTTP برای تنظیم ارتباط و همکاری دوجانبه مرورگر به سرور استفاده می کند.(ASP.NET بخشی از پلت فرم دات نت مایکروسافت است. برنامه های ASP.NET کدهای کامپایل شده ای هستند که با استفاده از کامپوننت ها یا اشیاء قابل توسعه و قابل استفاده مجدد در چارچوب Net نوشته شده اند. این کدها می توانند از کل سلسله مراتب کلاس ها در چارچوب Net استفاده کنند.کدهای برنامه ASP.NET را می توان به هر یک از زبان های زیر نوشت:سی شارپویژوال بیسیک.نتJscriptJ#ASP.NET برای تولید برنامه های کاربردی وب تعاملی و مبتنی بر داده از طریق اینترنت استفاده می شود. این شامل تعداد زیادی کنترل مانند جعبه متن، دکمه ها و برچسب ها برای مونتاژ، پیکربندی و دستکاری کد برای ایجاد صفحات HTML است.مدل فرم های وب ASP.NETفرم های وب ASP.NET مدل رویداد محور تعامل را به برنامه های کاربردی وب گسترش می دهند. مرورگر یک فرم وب را به وب سرور ارسال می کند و سرور در پاسخ یک صفحه نشانه گذاری کامل یا صفحه HTML را برمی گرداند.تمام فعالیت های کاربر سمت سرویس گیرنده برای پردازش حالت به سرور ارسال می شود. سرور خروجی اقدامات مشتری را پردازش می کند و واکنش ها را تحریک می کند.اکنون HTTP یک پروتکل بدون حالت است. چارچوب ASP.NET به ذخیره اطلاعات مربوط به وضعیت برنامه کمک می کند که شامل موارد زیر است:وضعیت صفحهوضعیت جلسهحالت صفحه وضعیت مشتری است، یعنی محتوای فیلدهای ورودی مختلف در فرم وب. وضعیت جلسه اطلاعات جمعی است که از صفحات مختلفی که کاربر بازدید کرده و با آنها کار کرده است به دست می آید، یعنی وضعیت کلی جلسه. برای روشن شدن مفهوم، اجازه دهید مثالی از سبد خرید بیاوریم.کاربر مواردی را به سبد خرید اضافه می کند. اقلام از یک صفحه انتخاب می شوند، مثلاً صفحه اقلام، و کل اقلام جمع آوری شده و قیمت در یک صفحه دیگر، مثلاً صفحه سبد خرید، نشان داده می شوند. فقط HTTP نمی تواند تمام اطلاعاتی که از صفحات مختلف می آید را ردیابی کند. وضعیت جلسه ASP.NET و زیرساخت سمت سرور اطلاعات جمع آوری شده در سطح جهانی را در طول یک جلسه پیگیری می کند.زمان اجرا ASP.NET وضعیت صفحه را به و از سرور در سراسر درخواست های صفحه حمل می کند در حالی که کدهای زمان اجرا ASP.NET را ایجاد می کند و وضعیت اجزای سمت سرور را در فیلدهای مخفی ترکیب می کند.به این ترتیب، سرور از وضعیت کلی برنامه آگاه می شود و به روش متصل دو لایه عمل می کند.مدل مؤلفه ASP.NETمدل مؤلفه ASP.NET بلوک های ساختمانی مختلفی از صفحات ASP.NET را فراهم می کند. اساساً این یک مدل شی است که شرح می دهد:همتای سمت سرور تقریباً همه عناصر یا برچسب‌های HTML، مانند <form> و <input>.کنترل های سرور، که به توسعه رابط کاربری پیچیده کمک می کند. برای مثال، کنترل Calendar یا کنترل Gridview.ASP.NET یک فناوری است که بر روی چارچوب .Net کار می کند که شامل تمام عملکردهای مرتبط با وب است. چارچوب .Net از یک سلسله مراتب شی گرا ساخته شده است. یک برنامه وب ASP.NET از صفحات ساخته شده است. هنگامی که کاربر یک صفحه ASP.NET را درخواست می کند، IIS پردازش صفحه را به سیستم زمان اجرا ASP.NET محول می کند.زمان اجرا ASP.NET صفحه .aspx را به نمونه ای از یک کلاس تبدیل می کند که از صفحه کلاس پایه چارچوب Net به ارث می رسد. بنابراین، هر صفحه ASP.NET یک شی است و تمام اجزای آن یعنی کنترل های سمت سرور نیز شی هستند.اجزای Net Framework 3.5قبل از رفتن به جلسه بعدی در Visual Studio.Net، اجازه دهید اجزای مختلف چارچوب .Net 3.5 را بررسی کنیم. جدول زیر اجزای چارچوب .Net 3.5 و کار آنها را توضیح می دهد:اجزا و توضیحات آنها(1) زمان اجرای زبان مشترک یا CLRاین برنامه مدیریت حافظه، مدیریت استثنا، اشکال زدایی، بررسی امنیتی، اجرای رشته، اجرای کد، ایمنی کد، تأیید و کامپایل را انجام می دهد. کدی که مستقیماً توسط CLR مدیریت می شود، کد مدیریت شده نامیده می شود. هنگامی که کد مدیریت شده کامپایل می شود، کامپایلر کد منبع را به یک کد زبان میانی مستقل CPU (IL) تبدیل می کند. یک کامپایلر Just In Time (JIT) کد IL را به کد بومی، که مختص CPU است، کامپایل می کند.(2) Net Framework Class Libraryاین شامل یک کتابخانه بزرگ از انواع قابل استفاده مجدد است. کلاس ها، رابط ها، ساختارها و مقادیر شمارش شده که مجموعاً به آنها انواع می گویند.(3) مشخصات زبان مشترکاین شامل مشخصات زبان های پشتیبانی شده از Net و اجرای یکپارچه سازی زبان است.(4) سیستم نوع مشترکدستورالعمل هایی برای اعلام، استفاده و مدیریت انواع در زمان اجرا و ارتباطات بین زبانی ارائه می دهد.(5) فراداده ها و مجموعه هاMetadata اطلاعات دودویی توصیف کننده برنامه است که یا در یک فایل اجرایی قابل حمل (PE) یا در حافظه ذخیره می شود. اسمبلی یک واحد منطقی است که از مانیفست اسمبلی، نوع متادیتا، کد IL و مجموعه ای از منابع مانند فایل های تصویری تشکیل شده است.(6) فرم های ویندوزفرم های ویندوز حاوی نمایش گرافیکی هر پنجره ای است که در برنامه نمایش داده می شود.(7) ASP.NET و ASP.NET AJAXASP.NET مدل توسعه وب و AJAX توسعه ASP.NET برای توسعه و پیاده سازی عملکرد AJAX است. ASP.NET AJAX شامل اجزایی است که به توسعه دهنده اجازه می دهد تا داده های یک وب سایت را بدون بارگذاری مجدد کامل صفحه به روز کند.(8) ADO.NETاین فناوری برای کار با داده ها و پایگاه های داده استفاده می شود. دسترسی به منابع داده مانند سرور SQL، OLE DB، XML و غیره را فراهم می کند. ADO.NET امکان اتصال به منابع داده را برای بازیابی، دستکاری و به روز رسانی داده ها را فراهم می کند.(9) Windows Workflow Foundation (WF)این به ساخت برنامه های مبتنی بر گردش کار در ویندوز کمک می کند. این شامل فعالیت ها، زمان اجرا گردش کار، طراح گردش کار و موتور قوانین است.(10) بنیاد ارائه ویندوزاین جدایی بین رابط کاربری و منطق تجاری را فراهم می کند. این به توسعه رابط های بصری خیره کننده با استفاده از اسناد، رسانه ها، گرافیک های دو و سه بعدی، انیمیشن ها و موارد دیگر کمک می کند.(11) Windows Communication Foundation (WCF)این فناوری است که برای ساخت و اجرای سیستم های متصل استفاده می شود.(12) Windows CardSpaceاین امنیت برای دسترسی به منابع و به اشتراک گذاری اطلاعات شخصی در اینترنت را فراهم می کند.(13) LINQبا استفاده از نحوی که شبیه به زبان پرس و جو سنتی SQL است، قابلیت‌های جستجوی داده را به زبان‌های Net.ASP.NET - تنظیمات محیطیASP.NET یک لایه انتزاعی در بالای HTTP فراهم می کند که برنامه های وب روی آن ساخته شده اند. این موجودیت های سطح بالا مانند کلاس ها و مؤلفه ها را در یک پارادایم شی گرا فراهم می کند.ابزار توسعه کلیدی برای ساخت برنامه های ASP.NET و فرانت اند ویژوال استودیو است. در این آموزش با Visual Studio 2008 کار می کنیم.Visual Studio یک محیط توسعه یکپارچه برای نوشتن، کامپایل و اشکال زدایی کد است. مجموعه کاملی از ابزارهای توسعه را برای ساخت برنامه های وب ASP.NET، خدمات وب، برنامه های دسکتاپ و برنامه های تلفن همراه ارائه می دهد.Visual Studio IDEپنجره پروژه جدید امکان انتخاب یک الگوی برنامه از بین الگوهای موجود را فراهم می کند.هنگامی که یک وب سایت جدید راه اندازی می کنید، ASP.NET پوشه ها و فایل های شروع را برای سایت فراهم می کند، از جمله دو فایل برای اولین فرم وب سایت.فایلی با نام Default.aspx حاوی کد HTML و asp است که فرم را تعریف می کند و فایلی با نام Default.aspx.cs (برای کدنویسی C#) یا فایلی با نام Default.aspx.vb (برای کدنویسی VB) حاوی کد موجود در زبانی که انتخاب کرده اید و این کد مسئول اعمال انجام شده روی یک فرم است.پنجره اصلی در Visual Studio IDE پنجره Web Forms Designer است. سایر پنجره های پشتیبانی کننده جعبه ابزار، Solution Explorer و پنجره Properties هستند. شما از طراح برای طراحی یک فرم وب استفاده می کنید، برای اضافه کردن کد به کنترل روی فرم به طوری که فرم مطابق نیاز شما کار می کند، از ویرایشگر کد استفاده می کنید.کار با Views و Windowsشما می توانید با ویندوز به روش های زیر کار کنید:برای تغییر Web Forms Designer از یک نمای به نمای دیگر، روی دکمه Design یا Source کلیک کنید.برای بستن یک پنجره، روی دکمه بستن در گوشه بالا سمت راست کلیک کنید و برای نمایش مجدد، آن را از منوی View انتخاب کنید.برای مخفی کردن یک پنجره، روی دکمه پنهان کردن خودکار آن کلیک کنید. سپس پنجره به تب تبدیل می شود. برای نمایش مجدد، دوباره روی دکمه Auto Hide کلیک کنید.برای تغییر اندازه یک پنجره، فقط آن را بکشید.اضافه کردن پوشه ها و فایل ها به وب سایت شماهنگامی که یک فرم وب جدید ایجاد می شود، ویژوال استودیو به طور خودکار HTML اولیه فرم را تولید می کند و آن را در نمای منبع طراح فرم های وب نمایش می دهد. Solution Explorer برای افزودن هر فایل، پوشه یا هر مورد موجود در وب سایت استفاده می شود.برای افزودن یک پوشه استاندارد، روی پروژه یا پوشه‌ای که در آن می‌خواهید پوشه را در Solution Explorer اضافه کنید، راست کلیک کرده و New Folder را انتخاب کنید.برای افزودن یک پوشه ASP.NET، روی پروژه در Solution Explorer راست کلیک کرده و پوشه را از لیست انتخاب کنید.برای افزودن یک آیتم موجود به سایت، روی پروژه یا پوشه ای که در آن می خواهید مورد را در Solution Explorer اضافه کنید کلیک راست کرده و از کادر محاوره ای انتخاب کنید.پروژه ها و راه حل هایک برنامه معمولی ASP.NET شامل موارد زیادی است: فایل‌های محتوای وب (aspx.)، فایل‌های منبع (فایل‌های cs)، مجموعه‌ها (فایل‌های .dll و .exe)، فایل‌های منبع داده (فایل‌های mdb.)، مراجع، نمادها. ، کنترل های کاربر و فایل ها و پوشه های متفرقه دیگر. تمام این فایل‌هایی که وب‌سایت را تشکیل می‌دهند در یک Solution قرار دارند.هنگامی که یک وب سایت جدید ایجاد می شود. VB2008 به طور خودکار راه حل را ایجاد می کند و آن را در کاوشگر راه حل نمایش می دهد.راه حل ها ممکن است شامل یک یا چند پروژه باشند. یک پروژه حاوی فایل های محتوا، فایل های منبع و فایل های دیگر مانند منابع داده و فایل های تصویری است. به طور کلی، محتویات یک پروژه در یک اسمبلی به عنوان یک فایل اجرایی (exe.) یا یک فایل کتابخانه پیوند پویا (.dll) کامپایل می شود.به طور معمول یک پروژه حاوی فایل های محتوای زیر است:فایل صفحه (aspx.)کنترل کاربر (ascx.)وب سرویس (asmx.)صفحه اصلی (.master)نقشه سایت (sitemap.)فایل پیکربندی وب سایت (config.)ساخت و اجرای یک پروژهشما می توانید یک برنامه را با استفاده از موارد زیر اجرا کنید:انتخاب شروعانتخاب Start Without Debugging از منوی Debug،F5 را فشار دهیدCtrl-F5این برنامه به معنای ساخته شده است، فایل‌های exe. یا .dll با انتخاب یک فرمان از منوی Build تولید می‌شوند.ASP.NET - چرخه زندگیچرخه عمر ASP.NET مشخص می کند که چگونه:ASP.NET صفحات را برای تولید خروجی پویا پردازش می کندبرنامه و صفحات آن نمونه سازی و پردازش می شوندASP.NET صفحات را به صورت پویا کامپایل می کندچرخه عمر ASP.NET را می توان به دو گروه تقسیم کرد:چرخه عمر برنامهچرخه عمر صفحهچرخه عمر برنامه ASP.NETچرخه عمر برنامه دارای مراحل زیر است:کاربر درخواستی برای دسترسی به منبع برنامه، یک صفحه می کند. مرورگر این درخواست را به سرور وب ارسال می کند.یک خط لوله یکپارچه اولین درخواست را دریافت می کند و رویدادهای زیر رخ می دهد:یک شی از کلاس ApplicationManager ایجاد می شود.یک شی از کلاس HostingEnvironment برای ارائه اطلاعات مربوط به منابع ایجاد می شود.موارد سطح بالا در برنامه کامپایل شده است.اشیاء پاسخ ایجاد می شوند. اشیاء برنامه مانند HttpContext، HttpRequest و HttpResponse ایجاد و مقداردهی اولیه می شوند.نمونه ای از شی HttpApplication ایجاد شده و به درخواست اختصاص داده می شود.درخواست توسط کلاس HttpApplication پردازش می شود. رویدادهای مختلفی توسط این کلاس برای پردازش درخواست مطرح می شود.چرخه عمر صفحه ASP.NETهنگامی که صفحه ای درخواست می شود، در حافظه سرور بارگذاری می شود، پردازش می شود و به مرورگر ارسال می شود. سپس از حافظه تخلیه می شود. در هر یک از این مراحل، روش‌ها و رویدادهایی در دسترس هستند که می‌توان آن‌ها را با توجه به نیاز برنامه لغو کرد. به عبارت دیگر، شما می توانید کد خود را برای لغو کد پیش فرض بنویسید.کلاس Page یک درخت سلسله مراتبی از تمام کنترل های صفحه ایجاد می کند. تمام اجزای صفحه، به جز دستورالعمل ها، بخشی از این درخت کنترل هستند. شما می توانید درخت کنترل را با افزودن trace= "true" به دستورالعمل صفحه ببینید. ما دستورالعمل‌های صفحه و ردیابی را تحت «دستورالعمل‌ها» و «مدیریت رویداد» پوشش خواهیم داد.مراحل چرخه عمر صفحه عبارتند از:مقداردهی اولیهنمونه برداری از کنترل ها در صفحهبازسازی و نگهداری دولتاجرای کدهای کنترل کننده رویدادرندر صفحهدرک چرخه صفحه به نوشتن کدهایی برای ایجاد یک چیز خاص در هر مرحله از چرخه عمر صفحه کمک می کند. همچنین به نوشتن کنترل‌های سفارشی و راه‌اندازی اولیه آن‌ها در زمان مناسب، پر کردن ویژگی‌های آن‌ها با داده‌های حالت view و اجرای کد رفتار کنترل کمک می‌کند.مراحل مختلف یک صفحه ASP.NET در زیر آمده است:درخواست صفحه - وقتی ASP.NET یک درخواست صفحه دریافت می کند، تصمیم می گیرد که آیا صفحه را تجزیه و کامپایل کند یا یک نسخه کش شده از صفحه وجود داشته باشد. بر این اساس پاسخ ارسال می شود.شروع چرخه عمر صفحه - در این مرحله، اشیاء Request و Response تنظیم می شوند. اگر درخواست یک درخواست قدیمی یا ارسال مجدد باشد، ویژگی IsPostBack صفحه روی true تنظیم می شود. ویژگی UICulture صفحه نیز تنظیم شده است.مقداردهی اولیه صفحه - در این مرحله با تنظیم خاصیت UniqueID به کنترل های صفحه شناسه منحصر به فرد اختصاص داده می شود و تم ها اعمال می شوند. برای یک درخواست جدید، داده‌های پس‌بازگشت بارگیری می‌شوند و ویژگی‌های کنترل به مقادیر حالت نمایش بازیابی می‌شوند.بارگذاری صفحه - در این مرحله، ویژگی های کنترل با استفاده از مقادیر view state و control state تنظیم می شوند.Validation - روش Validate کنترل اعتبارسنجی فراخوانی می شود و در اجرای موفقیت آمیز آن، ویژگی IsValid صفحه روی true تنظیم می شود.مدیریت رویداد پس‌بازگشت - اگر درخواست یک پس‌بازگشت (درخواست قدیمی) باشد، کنترل‌کننده رویداد مربوطه فراخوانی می‌شود.رندر صفحه - در این مرحله حالت مشاهده صفحه و تمامی کنترل ها ذخیره می شود. صفحه متد Render را برای هر کنترل فراخوانی می کند و خروجی رندر در کلاس OutputStream از ویژگی Response صفحه نوشته می شود.Unload - صفحه رندر شده برای مشتری ارسال می شود و ویژگی های صفحه مانند Response و Request بارگیری می شوند و تمام پاکسازی انجام می شود.رویدادهای چرخه زندگی صفحه ASP.NETدر هر مرحله از چرخه عمر صفحه، صفحه رویدادهایی را مطرح می کند که می توانند کدگذاری شوند. کنترل کننده رویداد اساساً یک تابع یا برنامه فرعی است که به رویداد متصل می شود و از ویژگی های اعلامی مانند یا handle استفاده می کند.رویدادهای چرخه عمر صفحه در زیر آمده است:PreInit - PreInit اولین رویداد در چرخه عمر صفحه است. ویژگی IsPostBack را بررسی می‌کند و تعیین می‌کند که آیا صفحه یک پس‌باز است یا خیر. این تم ها و صفحات اصلی را تنظیم می کند، کنترل های پویا ایجاد می کند، و مقادیر ویژگی پروفایل را دریافت و تنظیم می کند. این رویداد را می توان با بارگذاری بیش از حد متد OnPreInit یا ایجاد یک کنترل کننده Page_PreInit مدیریت کرد.Init - رویداد Init ویژگی کنترل را مقداردهی اولیه می کند و درخت کنترل ساخته می شود. این رویداد را می توان با بارگذاری بیش از حد متد OnInit یا ایجاد یک کنترل کننده Page_Init مدیریت کرد.InitComplete - رویداد InitComplete اجازه ردیابی وضعیت نمایش را می دهد. همه کنترل‌ها ردیابی وضعیت نمایش را روشن می‌کنند.LoadViewState - رویداد LoadViewState اجازه بارگیری اطلاعات وضعیت مشاهده را در کنترل ها می دهد.LoadPostData - در این مرحله، محتویات تمام فیلدهای ورودی با تگ <form> پردازش می شود.PreLoad - PreLoad قبل از بارگیری داده های پس از ارسال در کنترل ها رخ می دهد. این رویداد را می توان با بارگذاری بیش از حد متد OnPreLoad یا ایجاد یک کنترل کننده Page_PreLoad مدیریت کرد.بارگذاری - رویداد Load ابتدا برای صفحه و سپس به صورت بازگشتی برای همه کنترل های فرزند افزایش می یابد. کنترل ها در درخت کنترل ایجاد می شوند. این رویداد را می توان با بارگذاری بیش از حد متد یا ایجاد یک کنترل کننده Page_Load مدیریت کرد.LoadComplete - فرآیند بارگیری تکمیل می شود، کنترل کننده های رویداد کنترل اجرا می شوند و اعتبار سنجی صفحه انجام می شود. این رویداد را می توان با بارگذاری بیش از حد متد OnLoadComplete یا ایجاد یک کنترل کننده Page_LoadComplete مدیریت کرد.PreRender - رویداد PreRender درست قبل از رندر شدن خروجی رخ می دهد. با مدیریت این رویداد، صفحات و کنترل ها می توانند هر گونه به روز رسانی را قبل از رندر شدن خروجی انجام دهند.PreRenderComplete - از آنجایی که رویداد PreRender به صورت بازگشتی برای همه کنترل‌های فرزند فعال می‌شود، این رویداد تکمیل مرحله پیش‌رندر را تضمین می‌کند.SaveStateComplete - وضعیت کنترل در صفحه ذخیره می شود. شخصی سازی، کنترل وضعیت و مشاهده اطلاعات وضعیت ذخیره می شود. نشانه گذاری HTML ایجاد می شود. این مرحله را می توان با نادیده گرفتن متد Render یا ایجاد یک handler Page_Render انجام داد.UnLoad - مرحله UnLoad آخرین مرحله از چرخه عمر صفحه است. رویداد UnLoad را برای همه کنترل ها به صورت بازگشتی و در نهایت برای خود صفحه افزایش می دهد. پاکسازی نهایی انجام می شود و تمام منابع و مراجع مانند اتصالات پایگاه داده آزاد می شوند. این رویداد را می توان با تغییر روش یا ایجاد یک کنترل کننده Page_UnLoad مدیریت کرد.ASP.NET - اولین مثالیک صفحه ASP.NET از تعدادی کنترل سرور به همراه کنترل های HTML، متن و تصاویر تشکیل شده است. داده های حساس از صفحه و وضعیت های کنترل های مختلف در صفحه در فیلدهای مخفی ذخیره می شوند که زمینه درخواست آن صفحه را تشکیل می دهند.زمان اجرا ASP.NET ارتباط بین نمونه صفحه و وضعیت آن را کنترل می کند. یک صفحه ASP.NET یک شی از صفحه است یا از آن به ارث رسیده است.تمام کنترل‌های موجود در صفحات نیز اشیایی از کلاس کنترل مرتبط هستند که از یک کلاس کنترل والد به ارث رسیده‌اند. هنگامی که یک صفحه اجرا می شود، نمونه ای از صفحه شی به همراه تمام کنترل های محتوای آن ایجاد می شود.یک صفحه ASP.NET نیز یک فایل سمت سرور است که با پسوند .aspx ذخیره شده است. ماهیت ماژولار است و می توان آن را به بخش های اصلی زیر تقسیم کرد:دستورالعمل های صفحهبخش کدصفحه آراییدستورالعمل های صفحهدستورالعمل های صفحه محیطی را برای اجرای صفحه تنظیم می کنند. دستورالعمل صفحه @ ویژگی های خاص صفحه را که توسط تجزیه کننده و کامپایلر صفحه ASP.NET استفاده می شود، تعریف می کند. دستورالعمل های صفحه مشخص می کنند که صفحه چگونه باید پردازش شود و چه فرضیاتی باید در مورد صفحه در نظر گرفته شود.این امکان وارد کردن فضاهای نام، بارگیری مجموعه ها و ثبت کنترل های جدید با نام تگ های سفارشی و پیشوندهای فضای نام را فراهم می کند.بخش کدبخش کد، کنترل کننده های صفحه و رویدادهای کنترلی را به همراه سایر توابع مورد نیاز ارائه می دهد. اشاره کردیم که ASP.NET از یک مدل شی پیروی می کند. اکنون، این اشیاء هنگامی که برخی رویدادها در رابط کاربری اتفاق می‌افتند، رویدادها را افزایش می‌دهند، مانند کلیک کاربر روی دکمه یا حرکت مکان‌نما. نوع پاسخی که این رویدادها باید متقابل داشته باشند در توابع کنترل کننده رویداد کدگذاری شده است. کنترل کننده های رویداد چیزی جز توابع محدود به کنترل ها نیستند.بخش کد یا کد پشت فایل همه این روال های کنترل کننده رویداد و سایر عملکردهای مورد استفاده توسط توسعه دهنده را فراهم می کند. کد صفحه می تواند از پیش کامپایل شده و در قالب یک اسمبلی باینری مستقر شود.صفحه آراییصفحه آرایی رابط صفحه را فراهم می کند. این شامل کنترل های سرور، متن، جاوا اسکریپت درون خطی و تگ های HTML است.قطعه کد زیر نمونه ای از صفحه ASP.NET را ارائه می دهد که دستورالعمل های صفحه، بخش کد و طرح بندی صفحه نوشته شده در سی شارپ را توضیح می دهد:<!-- directives --><% @Page Language="C#" %><!-- code section --><script runat="server"> private void convertoupper(object sender, EventArgs e) { string str = mytext.Value; changed_text = str.ToUpper(); }<!-- Layout --><html> <head> <title> Change to Upper Case </title> </head> <body> <h3> Conversion to Upper Case </h3> <form runat="server"> <input runat="server" id="mytext" type="text" /> <input runat="server" id="button1" type="submit" value="Enter..." OnServerClick="convertoupper"/> <hr /> <h3> Results: </h3> <span runat="server" id="changed_text" /> </form> </body></html>این فایل را در پوشه اصلی وب سرور کپی کنید. معمولاً c:\iNETput\wwwroot است. فایل را از مرورگر باز کنید تا آن را اجرا کنید و نتیجه زیر را ایجاد می کند:استفاده از Visual Studio IDEاجازه دهید همین مثال را با استفاده از Visual Studio IDE توسعه دهیم. به جای تایپ کد، فقط می توانید کنترل ها را به نمای طراحی بکشید:فایل محتوا به طور خودکار توسعه می یابد. تنها چیزی که باید اضافه کنید روال Button1_Click است که به شرح زیر است:protected void Button1_Click(object sender, EventArgs e){ string buf = TextBox1.Text; changed_text = buf.ToUpper();}کد فایل محتوا به صورت زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="firstexample._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server" style="width:224px"> </asp:TextBox> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="Enter..." style="width:85px" ="Button1_Click" /> <hr /> <h3> Results: </h3> <span runat="server" id="changed_text" /> </div> </form> </body></html>مثال را با کلیک راست بر روی نمای طراحی و انتخاب "مشاهده در مرورگر" از منوی بازشو اجرا کنید. این نتیجه زیر را ایجاد می کند:ASP.NET - مدیریت رویدادرویداد چیست؟رویداد یک عمل یا رخداد مانند کلیک ماوس، فشار دادن کلید، حرکت ماوس یا هر اعلان تولید شده توسط سیستم است. یک فرآیند از طریق رویدادها ارتباط برقرار می کند. به عنوان مثال، وقفه ها رویدادهای تولید شده توسط سیستم هستند. هنگامی که رویدادها رخ می دهند، برنامه باید بتواند به آن پاسخ دهد و آن را مدیریت کند.رویدادها در ASP.NET در ماشین کلاینت مطرح شده و در ماشین سرور مدیریت می شوند. به عنوان مثال، کاربر روی دکمه ای که در مرورگر نمایش داده شده است کلیک می کند. یک رویداد کلیک مطرح می شود. مرورگر این رویداد سمت سرویس گیرنده را با ارسال آن به سرور مدیریت می کند.سرور دارای یک برنامه فرعی است که در آن توضیح می دهد که هنگام بالا رفتن رویداد چه کاری باید انجام شود. به آن رویداد Handler گفته می شود. بنابراین، هنگامی که پیام رویداد به سرور منتقل می‌شود، بررسی می‌کند که آیا رویداد کلیک دارای یک کنترل کننده رویداد مرتبط است یا خیر. در صورت وجود، کنترل کننده رویداد اجرا می شود.استدلال رویدادکنترل‌کننده‌های رویداد ASP.NET معمولاً دو پارامتر را می‌گیرند و void را برمی‌گردانند. پارامتر اول نشان دهنده شیء افزایش دهنده رویداد و پارامتر دوم آرگومان رویداد است.نحو کلی یک رویداد به صورت زیر است:private void EventName (object sender, EventArgs e);برنامه و رویدادهای جلسهمهمترین رویدادهای برنامه عبارتند از:Application_Start - زمانی که برنامه/وب سایت راه اندازی می شود، افزایش می یابد.Application_End - زمانی که برنامه/وب سایت متوقف می شود، افزایش می یابد.به طور مشابه، پر استفاده ترین رویدادهای Session عبارتند از:Session_Start - زمانی که کاربر برای اولین بار صفحه ای را از برنامه درخواست می کند، افزایش می یابد.Session_End - زمانی که جلسه به پایان می رسد بالا می رود.صفحه و کنترل رویدادهارویدادهای معمول صفحه و کنترل عبارتند از:DataBinding - هنگامی که یک کنترل به منبع داده متصل می شود، افزایش می یابد.Disposed - هنگامی که صفحه یا کنترل آزاد می شود، بالا می رود.خطا - این یک رویداد صفحه است، زمانی رخ می دهد که یک استثنا کنترل نشده پرتاب می شود.Init - هنگامی که صفحه یا کنترل مقداردهی اولیه می شود، افزایش می یابد.بارگذاری - هنگامی که صفحه یا یک کنترل بارگذاری می شود، افزایش می یابد.PreRender - زمانی که صفحه یا کنترل قرار است رندر شود بالا می رود.Unload - هنگامی که صفحه یا کنترل از حافظه بارگیری می شود، افزایش می یابد.مدیریت رویداد با استفاده از کنترل هاتمام کنترل‌های ASP.NET به‌عنوان کلاس‌ها پیاده‌سازی می‌شوند و رویدادهایی دارند که زمانی که کاربر یک عمل خاص را روی آنها انجام می‌دهد، فعال می‌شوند. به عنوان مثال، هنگامی که کاربر روی دکمه ای کلیک می کند، رویداد 'Click' ایجاد می شود. برای مدیریت رویدادها، ویژگی‌ها و کنترل‌کننده‌های رویداد داخلی وجود دارد. مدیریت رویداد برای پاسخ به یک رویداد و انجام اقدامات مناسب در مورد آن کدگذاری شده است.به‌طور پیش‌فرض، ویژوال استودیو با گنجاندن یک بند Handles در رویه Sub، یک مدیریت رویداد ایجاد می‌کند. این بند کنترل و رویدادی را که رویه مدیریت می‌کند نام‌گذاری می‌کند.تگ ASP برای کنترل دکمه:<asp:Button ID="btnCancel" runat="server" Text="Cancel" />کنترل کننده رویداد برای رویداد کلیک:Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.ClickEnd Subیک رویداد همچنین می تواند بدون بند Handles کدگذاری شود. سپس، کنترل کننده باید با توجه به ویژگی رویداد مناسب کنترل نامگذاری شود.تگ ASP برای کنترل دکمه:<asp:Button ID="btnCancel" runat="server" Text="Cancel" ="btnCancel_Click" />کنترل کننده رویداد برای رویداد کلیک:Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)End Subرویدادهای کنترل رایج عبارتند از:کنترل‌های ویژگی رویدادروی دکمه ، دکمه تصویر، دکمه پیوند، نقشه تصویر کلیک کنیدCommand Button، دکمه تصویر، دکمه پیوندTextChanged OnTextChanged جعبه متنSelectedIndexChanged OnSelectedIndexChanged لیست کشویی، کادر فهرست، فهرست دکمه های رادیویی، لیست کادر بررسی.CheckedChanged OnCheckedChanged چک باکس، دکمه رادیوییبرخی از رویدادها باعث می شوند که فرم فوراً به سرور ارسال شود که به آنها رویدادهای پس گردان می گویند. به عنوان مثال، رویداد کلیک مانند، Button.Click.برخی از رویدادها فوراً به سرور ارسال نمی شوند، به این رویدادها رویدادهای غیرپست بک می گویند.به عنوان مثال، رویدادهای تغییر یا رویدادهای انتخابی مانند TextBox.TextChanged یا CheckBox.CheckedChanged. رویدادهای nonpostback را می‌توان با تنظیم ویژگی AutoPostBack روی true، فوراً ارسال کرد.رویدادهای پیش‌فرضرویداد پیش‌فرض برای شی Page Load event است. به طور مشابه، هر کنترل دارای یک رویداد پیش فرض است. به عنوان مثال، رویداد پیش فرض برای کنترل دکمه، رویداد کلیک است.کنترل کننده رویداد پیش فرض را می توان در ویژوال استودیو، فقط با دوبار کلیک کردن روی کنترل در نمای طراحی ایجاد کرد. جدول زیر برخی از رویدادهای پیش فرض برای کنترل های رایج را نشان می دهد:رویداد پیش فرض را کنترل کنیدAdRotator AdCreatedBulletedList کلیک کنیددکمه کلیک کنیدانتخاب تقویم تغییر کردCheckBox CheckedChangedCheckBoxList SelectedIndexChangedDataGrid SelectedIndexChangedDataList SelectedIndexChangedDropDownList SelectedIndexChangedHyperLink کلیک کنیدImageButton کلیک کنیدImageMap کلیک کنیدLinkButton کلیک کنیدListBox SelectedIndexChangedMenu MenuItem کلیک کنیدRadioButton CheckedChangedRadioButtonList SelectedIndexChangedمثالاین مثال شامل یک صفحه ساده با کنترل برچسب و کنترل دکمه روی آن است. همانطور که رویدادهای صفحه مانند Page_Load، Page_Init، Page_PreRender و غیره رخ می دهند، پیامی ارسال می کند که توسط کنترل برچسب نمایش داده می شود. هنگامی که دکمه کلیک می شود، رویداد Button_Click بالا می رود و همچنین پیامی برای نمایش روی برچسب ارسال می کند.یک وب سایت جدید ایجاد کنید و یک کنترل برچسب و یک کنترل دکمه را روی آن از جعبه ابزار کنترل بکشید. با استفاده از پنجره خواص، شناسه کنترل ها را به صورت lblmessage. تنظیم کنید. و btclick. به ترتیب. ویژگی Text کنترل Button را به عنوان 'Click' تنظیم کنید.فایل نشانه گذاری (aspx.):<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="eventdemo._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="lblmessage" runat="server" > </asp:Label> <br /> <br /> <br /> <asp:Button ID="btnclick" runat="server" Text="Click" ="btnclick_Click" /> </div> </form> </body></html>روی نمای طراحی دوبار کلیک کنید تا به کد پشت فایل بروید. رویداد Page_Load به طور خودکار بدون هیچ کدی در آن ایجاد می شود. خطوط کد خود توضیحی زیر را بنویسید:using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace eventdemo{ public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { lblmessage.Text += "Page load event handled. <br />"; if (Page.IsPostBack) { lblmessage.Text += "Page post back event handled.<br/>"; } } protected void Page_Init(object sender, EventArgs e){ lblmessage.Text += "Page initialization event handled.<br/>"; } protected void Page_PreRender(object sender, EventArgs e) { lblmessage.Text += "Page prerender event handled. <br/>"; } protected void btnclick_Click(object sender, EventArgs e) { lblmessage.Text += "Button click event handled. <br/>"; } }}صفحه را اجرا کنید. برچسب بارگذاری صفحه، مقداردهی اولیه صفحه و رویدادهای پیش رندر صفحه را نشان می دهد. برای دیدن اثر روی دکمه کلیک کنید:ASP.NET - سمت سرورما چرخه عمر صفحه و اینکه چگونه یک صفحه شامل کنترل های مختلف است را مطالعه کرده ایم. خود صفحه به عنوان یک شیء کنترلی نمونه سازی می شود. همه فرم های وب اساساً نمونه هایی از کلاس ASP.NET Page هستند. کلاس page دارای ویژگی های بسیار مفید زیر است که با اشیاء ذاتی مطابقت دارد:جلسهکاربردحافظه پنهاندرخواستواکنشسرورکاربرپی گیریما هر یک از این اشیاء را در زمان مناسب مورد بحث قرار خواهیم داد. در این آموزش ما شی Server، شی Request و شی Response را بررسی خواهیم کرد.شیء سرورشی Server در Asp.NET نمونه ای از کلاس System.Web.HttpServerUtility است. کلاس HttpServerUtility ویژگی ها و روش های متعددی را برای انجام کارهای مختلف ارائه می دهد.ویژگی ها و روش های شی سرورمتدها و خصوصیات کلاس HttpServerUtility از طریق شیء سرور ذاتی ارائه شده توسط ASP.NET در معرض دید قرار می گیرند.جدول زیر لیستی از خواص را ارائه می دهد:توضیحات ملکMachineName نام کامپیوتر سرورScriptTimeOut مقدار زمان پایان درخواست را در چند ثانیه دریافت و تنظیم می کند.جدول زیر فهرستی از چند روش مهم را ارائه می دهد:شرح روشCreateObject(String) نمونه ای از شی COM را ایجاد می کند که توسط ProgID آن (شناسه برنامه ای) شناسایی شده است.CreateObject(Type) نمونه ای از شی COM را ایجاد می کند که با نوع آن مشخص می شود.Equals(Object) تعیین می کند که آیا شی مشخص شده با شی فعلی برابر است یا خیر.Execute(String) کنترل کننده مسیر مجازی مشخص شده را در زمینه درخواست فعلی اجرا می کند.Execute(String, Boolean) کنترل کننده مسیر مجازی مشخص شده را در متن درخواست فعلی اجرا می کند و مشخص می کند که آیا مجموعه های QueryString و Form پاک شوند.GetLastError استثنا قبلی را برمی گرداند.GetType نوع نمونه فعلی را دریافت می کند.HtmlEncode یک رشته معمولی را به یک رشته با کاراکترهای قانونی HTML تغییر می دهد.HtmlDecode یک رشته Html را به یک رشته معمولی تبدیل می کند.ToString رشته ای را برمی گرداند که نشان دهنده شی فعلی است.Transfer(String) برای درخواست فعلی، اجرای صفحه فعلی را خاتمه می دهد و با استفاده از مسیر URL مشخص شده صفحه، اجرای یک صفحه جدید را آغاز می کند.UrlDecode یک رشته URL را به یک رشته معمولی تبدیل می کند.UrlEncodeToken مانند UrlEncode کار می کند، اما روی یک آرایه بایتی که حاوی داده های Base64 کدگذاری شده است.UrlDecodeToken مانند UrlDecode کار می کند، اما روی یک آرایه بایتی که حاوی داده های Base64 کدگذاری شده است.MapPath مسیر فیزیکی مربوط به یک مسیر فایل مجازی مشخص شده در سرور را برمی گرداند.انتقال اجرا را به صفحه وب دیگری در برنامه فعلی منتقل می کند.درخواست شیشی درخواست نمونه ای از کلاس System.Web.HttpRequest است. این مقادیر و ویژگی های درخواست HTTP را نشان می دهد که باعث بارگیری صفحه در مرورگر می شود.اطلاعات ارائه شده توسط این شی توسط انتزاعات سطح بالاتر (مدل کنترل وب) پیچیده می شود. با این حال، این شی به بررسی برخی از اطلاعات مانند مرورگر مشتری و کوکی ها کمک می کند.ویژگی ها و روش های شی درخواستجدول زیر برخی از ویژگی های قابل توجه شی Request را ارائه می دهد:توضیحات ملکAcceptTypes یک آرایه رشته ای از انواع پذیرش MIME با پشتیبانی مشتری دریافت می کند.ApplicationPath مسیر ریشه برنامه مجازی برنامه ASP.NET را بر روی سرور دریافت می کند.مرورگر اطلاعاتی درباره قابلیت‌های مرورگر مشتری درخواست‌کننده دریافت یا تنظیم می‌کند.ContentEncoding مجموعه کاراکتر موجودیت-بدن را دریافت یا تنظیم می کند.ContentLength طول محتوای ارسال شده توسط مشتری را بر حسب بایت مشخص می کند.ContentType نوع محتوای MIME درخواست ورودی را دریافت یا تنظیم می کند.کوکی ها مجموعه ای از کوکی های ارسال شده توسط مشتری را دریافت می کند.FilePath مسیر مجازی درخواست فعلی را دریافت می کند.Files مجموعه ای از فایل های آپلود شده توسط مشتری را در قالب MIME چند قسمتی دریافت می کند.Form مجموعه ای از متغیرهای فرم را دریافت می کند.Headers مجموعه ای از هدرهای HTTP را دریافت می کند.HttpMethod روش انتقال داده HTTP (مانند GET، POST یا HEAD) را که توسط مشتری استفاده می شود، دریافت می کند.InputStream محتویات موجودیت HTTP ورودی را دریافت می کند.IsSecureConnection مقداری دریافت می کند که نشان می دهد آیا اتصال HTTP از سوکت های امن (یعنی HTTPS) استفاده می کند.QueryString مجموعه ای از متغیرهای رشته پرس و جو HTTP را دریافت می کند.RawUrl URL خام درخواست فعلی را دریافت می کند.RequestType روش انتقال داده HTTP (GET یا POST) مورد استفاده مشتری را دریافت یا تنظیم می کند.ServerVariables مجموعه ای از متغیرهای وب سرور را دریافت می کند.TotalBytes تعداد بایت ها را در جریان ورودی فعلی دریافت می کند.URL اطلاعاتی در مورد URL درخواست فعلی دریافت می کند.UrlReferrer اطلاعاتی در مورد URL درخواست قبلی مشتری که به URL فعلی پیوند داده شده است را دریافت می کند.UserAgent رشته عامل کاربر خام مرورگر مشتری را دریافت می کند.UserHostAddress آدرس IP میزبان مشتری راه دور را دریافت می کند.UserHostName نام DNS مشتری راه دور را دریافت می کند.UserLanguages یک آرایه رشته مرتب شده از تنظیمات ترجیحی زبان مشتری دریافت می کند.جدول زیر فهرستی از چند روش مهم را ارائه می دهد:شرح روشBinaryRead خواندن دودویی تعداد مشخصی از بایت ها را از جریان ورودی فعلی انجام می دهد.Equals(Object) تعیین می کند که آیا شی مشخص شده با شی فعلی برابر است یا خیر. (از شی به ارث رسیده است.)GetType نوع نمونه فعلی را دریافت می کند.MapImageCoordinates یک پارامتر فرم تصویر-فیلد ورودی را برای مقادیر مختصات x و مختصات y نقشه می‌دهد.MapPath(String) مسیر مجازی مشخص شده را به یک مسیر فیزیکی نگاشت می کند.SaveAs یک درخواست HTTP را روی دیسک ذخیره می کند.ToString رشته ای را برمی گرداند که نشان دهنده شی فعلی است.ValidateInput باعث می شود تا برای مجموعه هایی که از طریق خصوصیات کوکی ها، فرم و QueryString به آنها دسترسی داشته باشید، اعتبارسنجی رخ دهد.شی پاسخشی Response نشان دهنده پاسخ سرور به درخواست مشتری است. این یک نمونه از کلاس System.Web.HttpResponse است.در ASP.NET، شی پاسخ هیچ نقشی حیاتی در ارسال متن HTML به کلاینت ایفا نمی کند، زیرا کنترل های سمت سرور دارای روش های تو در تو و شی گرا برای رندر کردن خود هستند.با این حال، شی HttpResponse هنوز برخی از عملکردهای مهم مانند ویژگی کوکی و روش Redirect() را ارائه می دهد. متد Response.Redirect () اجازه می دهد تا کاربر را به صفحه دیگری، در داخل و خارج از برنامه منتقل کنید. نیاز به رفت و برگشت دارد.ویژگی ها و روش های شی پاسخجدول زیر برخی از ویژگی های قابل توجه شی Response را ارائه می دهد:توضیحات ملکبافر مقداری را می گیرد یا تنظیم می کند که نشان می دهد خروجی را بافر کرده و پس از پایان پردازش پاسخ ارسال می کند.BufferOutput مقداری را می گیرد یا تنظیم می کند که نشان می دهد خروجی بافر شود و بعد از اتمام پردازش صفحه ارسال شود.Charset مجموعه کاراکترهای HTTP جریان خروجی را می گیرد یا تنظیم می کند.ContentEncoding مجموعه کاراکترهای HTTP جریان خروجی را دریافت یا تنظیم می کند.ContentType نوع HTTP MIME جریان خروجی را دریافت یا تنظیم می کند.Cookies مجموعه کوکی پاسخ را دریافت می کند.Expires تعداد دقیقه قبل از انقضای صفحه ذخیره شده در حافظه پنهان در مرورگر را دریافت یا تنظیم می کند.ExpiresAbsolute تاریخ و زمان مطلقی را برای حذف اطلاعات ذخیره شده از حافظه پنهان دریافت یا تنظیم می کند.HeaderEncoding یک شی رمزگذاری را دریافت یا تنظیم می کند که رمزگذاری جریان خروجی هدر فعلی را نشان می دهد.Headers مجموعه ای از هدرهای پاسخ را دریافت می کند.IsClientConnected مقداری را دریافت می کند که نشان می دهد مشتری همچنان به سرور متصل است یا خیر.خروجی خروجی متن به جریان پاسخ HTTP خروجی را فعال می کند.OutputStream خروجی باینری را به بدنه محتوای HTTP خروجی فعال می کند.RedirectLocation مقدار هدر مکان Http را دریافت یا تنظیم می کند.وضعیت خط وضعیتی را که به مشتری بازگردانده می شود را تنظیم می کند.StatusCode کد وضعیت HTTP خروجی بازگردانده شده به مشتری را دریافت یا تنظیم می کند.StatusDescription رشته وضعیت HTTP خروجی بازگردانده شده به مشتری را دریافت یا تنظیم می کند.SubStatusCode مقداری را می گیرد یا تنظیم می کند که کد وضعیت پاسخ را واجد شرایط می کند.SuppressContent مقداری را دریافت یا تنظیم می کند که نشان می دهد محتوای HTTP برای مشتری ارسال شود یا خیر.جدول زیر فهرستی از چند روش مهم را ارائه می دهد:شرح روشAddHeader یک هدر HTTP به جریان خروجی اضافه می کند. AddHeader برای سازگاری با نسخه های قبلی ASP ارائه شده است.AppendCookie Infrastructure یک کوکی HTTP را به مجموعه کوکی های ذاتی اضافه می کند.AppendHeader یک هدر HTTP را به جریان خروجی اضافه می کند.AppendToLog اطلاعات ثبت سفارشی را به فایل گزارش خدمات اطلاعات اینترنت (IIS) اضافه می کند.BinaryWrite رشته ای از کاراکترهای باینری را در جریان خروجی HTTP می نویسد.ClearContent تمام محتوای خروجی را از جریان بافر پاک می کند.Close اتصال سوکت را به یک کلاینت می بندد.End تمام خروجی های بافر فعلی را به مشتری ارسال می کند، اجرای صفحه را متوقف می کند و رویداد EndRequest را افزایش می دهد.Equals(Object) تعیین می کند که آیا شی مشخص شده با شی فعلی برابر است یا خیر.Flush تمام خروجی های بافر فعلی را برای مشتری ارسال می کند.GetType نوع نمونه فعلی را دریافت می کند.Pics یک عنوان HTTP PICS-Label را به جریان خروجی اضافه می کند.Redirect(String) یک درخواست را به یک URL جدید هدایت می کند و URL جدید را مشخص می کند.Redirect(String, Boolean) یک کلاینت را به یک URL جدید هدایت می کند. نشانی اینترنتی جدید و اینکه آیا اجرای صفحه فعلی باید خاتمه یابد را مشخص می کند.SetCookie یک کوکی موجود در مجموعه کوکی ها را به روز می کند.ToString رشته ای را برمی گرداند که نشان دهنده شی فعلی است.TransmitFile(String) فایل مشخص شده را مستقیماً در جریان خروجی پاسخ HTTP بدون بافر کردن آن در حافظه می‌نویسد.Write(Char) یک کاراکتر را در جریان خروجی پاسخ HTTP می نویسد.Write(Object) یک شی را در جریان پاسخ HTTP می نویسد.Write(String) رشته ای را در جریان خروجی پاسخ HTTP می نویسد.WriteFile(String) محتویات فایل مشخص شده را مستقیماً در جریان خروجی پاسخ HTTP به عنوان بلوک فایل می نویسد.WriteFile(String, Boolean) محتویات فایل مشخص شده را مستقیماً در جریان خروجی پاسخ HTTP به عنوان یک بلوک حافظه می نویسد.مثالمثال ساده زیر دارای یک کنترل جعبه متنی است که در آن کاربر می تواند نام، دکمه ای برای ارسال اطلاعات به سرور و یک کنترل برچسب برای نمایش URL کامپیوتر مشتری وارد کند.فایل محتوا:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="server_side._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> Enter your name:<br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" ="Button1_Click" Text="Submit" /> <br /> <asp:Label ID="Label1" runat="server"/> </div> </form> </body></html>کد پشت Button1_Click:protected void Button1_Click(object sender, EventArgs e){ if (!String.IsNullOrEmpty(TextBox1.Text)) { // Access the HttpServerUtility methods through // the intrinsic Server object. Label1.Text = "Welcome, " + Server.HtmlEncode(TextBox1.Text) + ".<br/> The url is " + Server.UrlEncode(Request.Url.ToString()) }}صفحه را اجرا کنید تا نتیجه زیر را ببینید:ASP.NET - کنترل های سرورکنترل‌ها بلوک‌های کوچکی از رابط کاربری گرافیکی هستند که شامل جعبه‌های متن، دکمه‌ها، جعبه‌های چک، جعبه‌های فهرست، برچسب‌ها و ابزارهای متعدد دیگر می‌شوند. با استفاده از این ابزار، کاربران می توانند داده ها را وارد کنند، انتخاب کنند و ترجیحات خود را نشان دهند.کنترل ها همچنین برای کارهای ساختاری مانند اعتبارسنجی، دسترسی به داده ها، امنیت، ایجاد صفحات اصلی و دستکاری داده ها استفاده می شوند.ASP.NET از پنج نوع کنترل وب استفاده می کند که عبارتند از:کنترل های HTMLکنترل های سرور HTMLکنترل های سرور ASP.NETکنترل های ASP.NET Ajax Serverکنترل های کاربر و کنترل های سفارشیکنترل های سرور ASP.NET کنترل های اولیه ای هستند که در ASP.NET استفاده می شوند. این کنترل ها را می توان به دسته های زیر دسته بندی کرد:کنترل‌های اعتبارسنجی - برای تأیید ورودی کاربر استفاده می‌شوند و با اجرای اسکریپت سمت سرویس گیرنده کار می‌کنند.کنترل های منبع داده - این کنترل ها اتصال داده ها را به منابع داده های مختلف فراهم می کند.کنترل‌های نمای داده - اینها فهرست‌ها و جداول مختلفی هستند که می‌توانند برای نمایش به داده‌های منابع داده متصل شوند.کنترل‌های شخصی‌سازی - برای شخصی‌سازی صفحه با توجه به تنظیمات کاربر، بر اساس اطلاعات کاربر استفاده می‌شود.ورود و کنترل های امنیتی - این کنترل ها احراز هویت کاربر را فراهم می کنند.صفحات اصلی - این کنترل ها چیدمان و رابط کاربری ثابتی را در سراسر برنامه ارائه می دهند.کنترل های ناوبری - این کنترل ها به ناوبری کمک می کنند. به عنوان مثال، منوها، نمای درختی و غیره.کنترل های غنی - این کنترل ها ویژگی های خاصی را اجرا می کنند. به عنوان مثال، کنترل AdRotator، FileUpload و Calendar.نحو استفاده از کنترل های سرور به صورت زیر است:<asp:controlType ID ="ControlID" runat="server" Property1=value1 [Property2=value2] />علاوه بر این، ویژوال استودیو دارای ویژگی های زیر است که به تولید کدنویسی بدون خطا کمک می کند:کشیدن و رها کردن کنترل ها در نمای طراحیویژگی IntelliSense که ویژگی ها را نمایش می دهد و به طور خودکار تکمیل می کندپنجره خواص برای تنظیم مستقیم مقادیر ویژگیویژگی های کنترل های سرورکنترل های سرور ASP.NET با جنبه بصری از کلاس WebControl مشتق شده اند و تمام ویژگی ها، رویدادها و متدهای این کلاس را به ارث می برند.خود کلاس WebControl و برخی دیگر از کنترل های سرور که به صورت بصری ارائه نمی شوند از کلاس System.Web.UI.Control مشتق شده اند. به عنوان مثال، کنترل مکان یا کنترل XML.کنترل های سرور ASP.Net تمام ویژگی ها، رویدادها و متدهای کلاس WebControl و System.Web.UI.Control را به ارث می برند.جدول زیر ویژگی های ارثی را نشان می دهد که در همه کنترل های سرور مشترک است:توضیحات ملکAccessKey با فشار دادن این کلید با کلید Alt، تمرکز به کنترل منتقل می شود.ویژگی ها مجموعه ای از ویژگی های دلخواه (فقط برای رندر) است که با ویژگی های کنترل مطابقت ندارد.رنگ پس زمینه رنگ پس زمینه.BindingContainer کنترلی که شامل اتصال داده این کنترل است.BorderColor رنگ حاشیه.BorderStyle سبک حاشیه.BorderWidth عرض حاشیه.CausesValidation نشان می دهد که آیا باعث اعتبار سنجی می شود.ChildControlCreated نشان می دهد که آیا کنترل های فرزند کنترل سرور ایجاد شده اند یا خیر.شناسه کنترل ClientID برای نشانه گذاری HTML.Context شی HttpContext مرتبط با کنترل سرور.کنترل ها مجموعه ای از تمام کنترل های موجود در کنترل.ControlStyle سبک کنترل وب سرور.کلاس CSS کلاس CSSاگر کانتینر نامگذاری IDataItemContainer را پیاده سازی کند، DataItemContainer به محفظه نامگذاری ارجاع می یابد.اگر ظرف نامگذاری IDataKeysControl را پیاده سازی کند، DataKeysContainer به محفظه نامگذاری ارجاع می دهد.DesignMode نشان می دهد که آیا کنترل روی سطح طراحی استفاده می شود یا خیر.DisabledCssClass کلاس CSS را می‌گیرد یا تنظیم می‌کند تا وقتی کنترل غیرفعال است، به عنصر HTML ارائه‌شده اعمال شود.Enabled نشان می دهد که آیا کنترل خاکستری است یا خیر.EnableTheming نشان می دهد که آیا طرح زمینه برای کنترل اعمال می شود یا خیر.EnableViewState نشان می دهد که آیا وضعیت نمایش کنترل حفظ می شود یا خیر.رویدادها لیستی از نمایندگان کنترل کننده رویداد را برای کنترل دریافت می کند.فونت فونت.رنگ پیش زمینه.HasAttributes نشان می دهد که آیا کنترل دارای صفات مجموعه ای است یا خیر.HasChildViewState نشان می دهد که آیا کنترل های فرزند کنترل سرور فعلی دارای تنظیمات حالت نمایش ذخیره شده هستند یا خیر.ارتفاع ارتفاع بر حسب پیکسل یا درصد.شناسه شناسه برای کنترلIsChildControlStateCleared نشان می دهد که آیا کنترل های موجود در این کنترل دارای حالت کنترل هستند یا خیر.IsEnabled مقداری را دریافت می کند که نشان می دهد آیا کنترل فعال است یا خیر.IsTrackingViewState نشان می دهد که آیا کنترل سرور تغییرات را در حالت نمایش خود ذخیره می کند یا خیر.IsViewStateEnabled نشان می دهد که آیا حالت view برای این کنترل فعال است یا خیر.LoadViewStateById نشان می دهد که آیا کنترل در بارگیری حالت نمایش خود به جای فهرست، توسط ID شرکت می کند یا خیر.صفحه صفحه حاوی کنترل.کنترل والدین.RenderingCompatibility نسخه ASP.NET را مشخص می کند که HTML رندر شده با آن سازگار باشد.Site محفظه ای که میزبان کنترل جاری در هنگام رندر شدن روی سطح طراحی است.SkinID پوست را برای اعمال روی کنترل می گیرد یا تنظیم می کند.Style مجموعه ای از ویژگی های متنی را دریافت می کند که به عنوان یک ویژگی سبک در تگ بیرونی کنترل وب سرور ارائه می شود.TabIndex فهرست برگه کنترل سرور وب را دریافت یا تنظیم می کند.TagKey مقدار HtmlTextWriterTag را دریافت می کند که مربوط به این کنترل وب سرور است.TagName نام تگ کنترل را دریافت می کند.TemplateControl الگویی که حاوی این کنترل است.TemplateSourceDirectory دایرکتوری مجازی صفحه یا کنترل حاوی این کنترل را دریافت می کند.ToolTip زمانی که نشانگر ماوس روی کنترل وب سرور قرار می گیرد، متن نمایش داده شده را دریافت یا تنظیم می کند.UniqueID شناسه منحصر به فرد.ViewState یک فرهنگ لغت از اطلاعات وضعیت دریافت می کند که وضعیت نمایش یک کنترل سرور را در چندین درخواست برای یک صفحه ذخیره و بازیابی می کند.ViewStateIgnoreCase نشان می دهد که آیا شی StateBag به حروف بزرگ و کوچک حساس نیست یا خیر.ViewStateMode حالت view-state این کنترل را دریافت یا تنظیم می کند.قابل مشاهده این نشان می دهد که آیا کنترل سرور قابل مشاهده است یا خیر.Width عرض کنترل سرور وب را دریافت یا تنظیم می کند.روش های کنترل سرورجدول زیر روش های کنترل سرور را نشان می دهد:شرح روشAddAttributesToRender ویژگی ها و سبک های HTML را اضافه می کند که باید به HtmlTextWriterTag مشخص شده ارائه شوند.AddedControl پس از افزودن یک کنترل فرزند به مجموعه Controls شیء کنترل فراخوانی می شود.AddParsedSubObject به کنترل سرور اطلاع می دهد که یک عنصر، اعم از XML یا HTML، تجزیه شده است، و عنصر را به مجموعه کنترل کنترل سرور اضافه می کند.ApplyStyleSheetSkin ویژگی های سبک تعریف شده در شیوه نامه صفحه را به کنترل اعمال می کند.زیرساخت ClearCachedClientID. مجموعه هامثالاجازه دهید به یک کنترل سرور خاص نگاه کنیم - یک کنترل نمای درختی. یک کنترل نمای درختی تحت کنترل های ناوبری قرار می گیرد. سایر کنترل های ناوبری عبارتند از: کنترل منو و کنترل SiteMapPath.یک کنترل نمای درختی را در صفحه اضافه کنید. Edit Nodes... را از میان کارها انتخاب کنید. هر یک از گره ها را با استفاده از ویرایشگر گره نمای درختی مطابق شکل ویرایش کنید:هنگامی که گره ها را ایجاد کردید، در نمای طراحی مانند زیر به نظر می رسد:وظیفه AutoFormat... به شما امکان می دهد نمای درختی را مطابق شکل قالب بندی کنید:یک کنترل برچسب و یک کنترل جعبه متنی را به صفحه اضافه کنید و آنها را به ترتیب lblmessage و txtmessage نامگذاری کنید.چند خط کد بنویسید تا مطمئن شوید که وقتی یک گره خاص انتخاب می‌شود، کنترل برچسب متن گره را نمایش می‌دهد و جعبه متن تمام گره‌های فرزند را در صورت وجود نشان می‌دهد. کد پشت فایل باید به شکل زیر باشد:using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq; namespace eventdemo{ public partial class treeviewdemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { txtmessage.Text = " "; } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { txtmessage.Text = " "; lblmessage.Text = "Selected node changed to: " + TreeView1.SelectedNode.Text; TreeNodeCollection childnodes = TreeView1.SelectedNode.ChildNodes; if(childnodes != null) { txtmessage.Text = " "; foreach (TreeNode t in childnodes) { txtmessage.Text += t.Value; } } } }}برای دیدن افکت ها صفحه را اجرا کنید. شما می توانید گره ها را گسترش داده و جمع کنید.ASP.NET - سرور HTMLکنترل‌های سرور HTML اساساً کنترل‌های استاندارد HTML هستند که برای فعال کردن پردازش سمت سرور بهبود یافته‌اند. کنترل‌های HTML مانند تگ‌های هدر، تگ‌های لنگر و عناصر ورودی توسط سرور پردازش نمی‌شوند، اما برای نمایش به مرورگر ارسال می‌شوند.آنها به طور خاص با افزودن ویژگی runat = "server" و افزودن ویژگی id به یک کنترل سرور تبدیل می شوند تا آنها را برای پردازش سمت سرور در دسترس قرار دهد.به عنوان مثال، کنترل ورودی HTML را در نظر بگیرید:<input type="text" size="40">می توان آن را با افزودن ویژگی runat و id به یک کنترل سرور تبدیل کرد:<input type="text" id="testtext" size="40" runat="server">مزایای استفاده از کنترل های سرور HTMLاگرچه کنترل های سرور ASP.NET می توانند هر کار انجام شده توسط کنترل های سرور HTML را انجام دهند، کنترل های بعدی در موارد زیر مفید هستند:استفاده از جداول استاتیک برای اهداف چیدمانتبدیل یک صفحه HTML برای اجرا تحت ASP.NETجدول زیر کنترل های سرور HTML را توضیح می دهد:تگ HTML نام را کنترل کنیدHtmlHead <head> عنصرHtmlInputButton <input type=button|submit|reset>HtmlInputCheckbox <input type=checkbox>HtmlInputFile <نوع ورودی = فایل>HtmlInputHidden <نوع ورودی = پنهان>HtmlInputImage <نوع ورودی = تصویر>HtmlInputPassword <نوع ورودی = رمز عبور>HtmlInputRadioButton <نوع ورودی = رادیو>HtmlInputReset <نوع ورودی = بازنشانی>HtmlText <نوع ورودی = متن|رمز عبور>عنصر HtmlImage <img>عنصر HtmlLink <link>عنصر HtmlAnchor <a>عنصر <button> HtmlButtonعنصر <button> HtmlButtonعنصر <form> HtmlFormعنصر HtmlTable <table>HtmlTableCell <td> و <th>عنصر HtmlTableRow <tr>عنصر HtmlTitle <title>HtmlSelect <انتخاب&t; عنصرHtmlGenericControl همه کنترل‌های HTML فهرست نشده‌اندمثالمثال زیر از یک جدول HTML پایه برای چیدمان استفاده می کند. از کادرهایی برای دریافت ورودی از کاربران مانند نام، آدرس، شهر، ایالت و غیره استفاده می کند. همچنین دارای یک دکمه کنترل است که برای نمایش داده های کاربر در ردیف آخر جدول کلیک می شود.صفحه باید در نمای طراحی شبیه به این باشد:کد صفحه محتوا استفاده از عنصر جدول HTML را برای چیدمان نشان می دهد.<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="htmlserver._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> <style type="text/css"> .style1 { width: 156px; } .style2 { width: 332px; } </style> </head> <body> <form id="form1" runat="server"> <div> <table style="width: 54%;"> <tr> <td class="style1">Name:</td> <td class="style2"> <asp:TextBox ID="txtname" runat="server" style="width:230px"> </asp:TextBox> </td> </tr> <tr> <td class="style1">Street</td> <td class="style2"> <asp:TextBox ID="txtstreet" runat="server" style="width:230px"> </asp:TextBox> </td> </tr> <tr> <td class="style1">City</td> <td class="style2"> <asp:TextBox ID="txtcity" runat="server" style="width:230px"> </asp:TextBox> </td> </tr> <tr> <td class="style1">State</td> <td class="style2"> <asp:TextBox ID="txtstate" runat="server" style="width:230px"> </asp:TextBox> </td> </tr> <tr> <td class="style1"> </td> <td class="style2"></td> </tr> <tr> <td class="style1"></td> <td ID="displayrow" runat ="server" class="style2"> </td> </tr> </table> </div> <asp:Button ID="Button1" runat="server" ="Button1_Click" Text="Click" /> </form> </body></html>کد پشت دکمه کنترل:protected void Button1_Click(object sender, EventArgs e){ string str = ""; str += txtname.Text + "<br />"; str += txtstreet.Text + "<br />"; str += txtcity.Text + "<br />"; str += txtstate.Text + "<br />"; displayrow = str;}موارد زیر را رعایت کنید:از تگ های استاندارد HTML برای طرح بندی صفحه استفاده شده است.آخرین ردیف جدول HTML برای نمایش داده ها استفاده می شود. به پردازش سمت سرور نیاز داشت، بنابراین یک ویژگی ID و ویژگی runat به آن اضافه شده است.ASP.NET - سمت مشتریکدنویسی سمت کلاینت ASP.NET دو جنبه دارد:اسکریپت های سمت کلاینت: روی مرورگر اجرا می شود و به نوبه خود سرعت اجرای صفحه را افزایش می دهد. به عنوان مثال، اعتبار سنجی داده های سمت سرویس گیرنده که می تواند داده های نامعتبر را دریافت کند و بدون مراجعه رفت و برگشت به سرور به کاربر هشدار دهد.کد منبع سمت سرویس گیرنده: صفحات ASP.NET این را تولید می کنند. به عنوان مثال، کد منبع HTML یک صفحه ASP.NET حاوی تعدادی فیلد پنهان و بلوک های کد جاوا اسکریپت است که به طور خودکار تزریق می شود، که اطلاعاتی مانند حالت نمایش را نگه می دارد یا کارهای دیگری را برای کارکرد صفحه انجام می دهد.اسکریپت های سمت مشتریتمام کنترل‌های سرور ASP.NET امکان فراخوانی کد سمت کلاینت نوشته شده با جاوا اسکریپت یا VBScript را می‌دهند. برخی از کنترل های سرور ASP.NET از برنامه نویسی سمت سرویس گیرنده برای ارائه پاسخ به کاربران بدون ارسال مجدد به سرور استفاده می کنند. به عنوان مثال، کنترل های اعتبارسنجی.جدای از این اسکریپت ها، کنترل Button دارای ویژگی OnClientClick است که امکان اجرای اسکریپت سمت کلاینت را با کلیک روی دکمه فراهم می کند.کنترل‌های HTML سنتی و سرور دارای رویدادهای زیر هستند که می‌توانند یک اسکریپت را هنگام بالا کشیدن اجرا کنند:شرح رویدادروشن شدن زمانی که کنترل تمرکز خود را از دست می دهد هنگامی که کنترل فوکوس را دریافت می کند وقتی روی کنترل کلیک می شود هنگامی که مقدار کنترل تغییر می کند وقتی کاربر کلیدی را فشار می دهد هنگامی که کاربر یک کلید الفبایی را فشار می دهد زمانی که کاربر کلیدی را رها می کند هنگامی که کاربر نشانگر ماوس را روی کنترل حرکت می دهدonserverclick هنگامی که روی کنترل کلیک می شود، رویداد ServerClick کنترل را افزایش می دهدکد منبع سمت مشتریقبلاً بحث کردیم که صفحات ASP.NET معمولاً در دو فایل نوشته می شوند:فایل محتوا یا فایل نشانه گذاری (.aspx)فایل کد پشتفایل محتوا حاوی تگ‌های کنترلی HTML یا ASP.NET و لفظ‌ها برای تشکیل ساختار صفحه است. کد پشت فایل حاوی تعریف کلاس است. در زمان اجرا، فایل محتوا تجزیه شده و به یک کلاس صفحه تبدیل می شود.این کلاس به همراه تعریف کلاس در فایل کد و کد تولید شده توسط سیستم، با هم کد اجرایی (مجموعه) را می سازند که تمام داده های ارسال شده را پردازش می کند، پاسخ تولید می کند و آن را به مشتری ارسال می کند.صفحه ساده را در نظر بگیرید:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="clientside._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" ="Button1_Click" Text="Click" /> </div> <hr /> <h3><asp:Label ID="Msg" runat="server" Text=""></asp:Label> </h3> </form> </body></html>هنگامی که این صفحه در مرورگر اجرا می شود، گزینه View Source صفحه HTML ارسال شده توسط ASP.Net را به مرورگر نشان می دهد:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title> Untitled Page </title> </head> <body> <form name="form1" method="post" action="Default.aspx" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTU5MTA2ODYwOWRk31NudGDgvhhA7joJum9Qn5RxU2M=" /> </div> <div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKpjZj0DALs0bLrBgKM54rGBhHsyM61rraxE+KnBTCS8cd1QDJ/"/> </div> <div> <input name="TextBox1" type="text" id="TextBox1" /> <input type="submit" name="Button1" value="Click" id="Button1" /> </div> <hr /> <h3><span id="Msg"></span></h3> </form> </body></html>اگر کد را به درستی مرور کنید، می بینید که دو تگ <div> اول حاوی فیلدهای مخفی هستند که وضعیت view و اطلاعات اعتبارسنجی را ذخیره می کنند.ASP.NET - کنترل های پایهدر این فصل، کنترل های اساسی موجود در ASP.NET را مورد بحث قرار خواهیم داد.دکمه های کنترلASP.NET سه نوع کنترل دکمه را ارائه می دهد:دکمه: متن را در یک ناحیه مستطیلی نمایش می دهد.دکمه پیوند: متنی را نمایش می دهد که شبیه یک لینک است.دکمه تصویر: یک تصویر را نمایش می دهد.هنگامی که کاربر روی دکمه ای کلیک می کند، دو رویداد مطرح می شود: کلیک و فرمان.نحو اصلی کنترل دکمه:<asp:Button ID="Button1" runat="server" ="Button1_Click" Text="Click" / >ویژگی های رایج کنترل دکمه:توضیحات ملکمتن متن نمایش داده شده روی دکمه. این فقط برای کنترل دکمه و دکمه پیوند است.ImageUrl فقط برای کنترل دکمه تصویر. تصویری که برای دکمه نمایش داده می شود.AlternateText فقط برای کنترل دکمه تصویر. اگر مرورگر نتواند تصویر را نمایش دهد، متنی که نمایش داده می شود.CausesValidation تعیین می کند که آیا اعتبار صفحه زمانی که کاربر روی دکمه کلیک می کند اتفاق می افتد یا خیر. پیش فرض درست است.CommandName یک مقدار رشته ای است که وقتی کاربر روی دکمه کلیک می کند به رویداد فرمان منتقل می شود.CommandArgument یک مقدار رشته ای که وقتی کاربر روی دکمه کلیک می کند به رویداد فرمان ارسال می شود.PostBackUrl URL صفحه ای که با کلیک کاربر روی دکمه درخواست می شود.جعبه های متن و برچسب هاکنترل‌های جعبه متن معمولاً برای پذیرش ورودی از کاربر استفاده می‌شوند. یک کنترل جعبه متنی بسته به تنظیمات ویژگی TextMode می تواند یک یا چند خط متن را بپذیرد.کنترل‌های برچسب راه آسانی برای نمایش متن ارائه می‌دهند که می‌توان آن را از اجرای یک صفحه به صفحه دیگر تغییر داد. اگر می خواهید متنی را نمایش دهید که تغییر نمی کند، از متن تحت اللفظی استفاده می کنید.نحو اصلی کنترل متن:<asp:TextBox ID="txtstate" runat="server" ></asp:TextBox>ویژگی های رایج جعبه متن و برچسب ها:توضیحات ملکTextMode نوع جعبه متن را مشخص می کند. SingleLine یک جعبه متن استاندارد ایجاد می کند، MultiLINE یک کادر متنی ایجاد می کند که بیش از یک خط متن را می پذیرد و رمز عبور باعث می شود کاراکترهایی که وارد می شوند ماسک شوند. پیش فرض SingleLine است.متن محتوای متن جعبه متن.MaxLength حداکثر تعداد کاراکترهایی که می توان در کادر متن وارد کرد.Wrap تعیین می کند که آیا متن به طور خودکار برای جعبه متن چند خطی بسته می شود یا خیر. پیش فرض درست است.ReadOnly تعیین می کند که آیا کاربر می تواند متن موجود در کادر را تغییر دهد یا خیر. پیش فرض نادرست است، یعنی کاربر نمی تواند متن را تغییر دهد.ستون ها عرض جعبه متن بر حسب کاراکتر. عرض واقعی بر اساس فونتی که برای ورود متن استفاده می شود تعیین می شود.ردیف ارتفاع یک جعبه متن چند خطی در خطوط. مقدار پیش‌فرض 0 است، یعنی یک کادر متنی تک خطی.مشخصه ای که بیشتر برای کنترل برچسب استفاده می شود "Text" است که به متن نمایش داده شده روی برچسب دلالت دارد.کادرها و دکمه های رادیویی را علامت بزنیدیک چک باکس تنها گزینه ای را نشان می دهد که کاربر می تواند آن را علامت زده یا آن را بردارید و دکمه های رادیویی گروهی از گزینه ها را ارائه می دهند که کاربر می تواند فقط یک گزینه را از بین آنها انتخاب کند.برای ایجاد گروهی از دکمه‌های رادیویی، باید همان نام را برای ویژگی GroupName هر دکمه رادیویی در گروه مشخص کنید. اگر بیش از یک گروه در یک فرم مورد نیاز است، نام گروه متفاوتی را برای هر گروه مشخص کنید.اگر می‌خواهید وقتی فرم در ابتدا نمایش داده می‌شود، کادر تأیید یا دکمه رادیویی انتخاب شود، ویژگی Checked آن را روی true تنظیم کنید. اگر مشخصه Checked برای چند دکمه رادیویی در یک گروه روی true تنظیم شود، آنگاه فقط آخرین مورد درست در نظر گرفته می شود.نحو اصلی چک باکس:<asp:CheckBox ID= "chkoption" runat= "Server"> </asp:CheckBox>نحو اصلی دکمه رادیویی:<asp:RadioButton ID= "rdboption" runat= "Server"> </asp: RadioButton>ویژگی های رایج چک باکس ها و دکمه های رادیویی:شرح اموالمتن متنی که در کنار کادر انتخاب یا دکمه رادیویی نمایش داده می شود.بررسی شده مشخص می کند که انتخاب شده باشد یا خیر، پیش فرض نادرست است.GroupName نام گروهی که کنترل به آن تعلق دارد.لیست کنترل هاASP.NET کنترل های زیر را ارائه می دهدلیست کشویی،کادر فهرست،لیست دکمه های رادیویی،چک باکس لیست،لیست گلوله شدهاین کنترل ها به کاربر اجازه می دهد از بین یک یا چند مورد از لیست انتخاب کند. جعبه‌های فهرست و فهرست‌های کشویی حاوی یک یا چند مورد فهرست هستند. این لیست ها را می توان با کد یا ویرایشگر ListItemCollection بارگذاری کرد.نحو اصلی کنترل جعبه لیست:<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ListBox1_SelectedIndexChanged"></asp:ListBox>نحو اصلی کنترل لیست کشویی:<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>ویژگی های رایج لیست باکس و لیست های کشویی:توضیحات ملکItems مجموعه ای از اشیاء ListItem که آیتم های موجود در کنترل را نشان می دهد. این ویژگی یک شی از نوع ListItemCollection را برمی گرداند.Rows تعداد موارد نمایش داده شده در کادر را مشخص می کند. اگر لیست واقعی دارای تعداد بیشتری از ردیف‌های نمایش داده شده باشد، یک نوار پیمایش اضافه می‌شود.SelectedIndex فهرست مورد انتخاب شده در حال حاضر. اگر بیش از یک مورد انتخاب شده باشد، شاخص اولین مورد انتخاب شده است. اگر هیچ موردی انتخاب نشده باشد، مقدار این ویژگی -1 است.SelectedValue مقدار مورد انتخاب شده در حال حاضر. اگر بیش از یک مورد انتخاب شده باشد، مقدار اولین مورد انتخاب شده است. اگر هیچ موردی انتخاب نشده باشد، مقدار این ویژگی یک رشته خالی ("") است.SelectionMode نشان می دهد که آیا یک جعبه لیست امکان انتخاب تک یا چند انتخاب را دارد.ویژگی های مشترک هر یک از آیتم های لیست:توضیحات ملکمتن متن نمایش داده شده برای مورد.Selected نشان می دهد که آیا مورد انتخاب شده است یا خیر.مقدار یک مقدار رشته مرتبط با آیتم.ذکر این نکته ضروری است که:برای کار با موارد موجود در لیست کشویی یا کادر فهرست، از ویژگی Items کنترل استفاده می کنید. این ویژگی یک شی ListItemCollection را برمی گرداند که شامل تمام آیتم های لیست است.رویداد SelectedIndexChanged زمانی مطرح می‌شود که کاربر مورد دیگری را از یک لیست کشویی یا کادر فهرست انتخاب کند.مجموعه ListItemشی ListItemCollection مجموعه ای از اشیاء ListItem است. هر شی ListItem نشان دهنده یک آیتم در لیست است. آیتم های یک ListItemCollection از 0 شماره گذاری می شوند.هنگامی که آیتم‌ها در کادر فهرست با استفاده از رشته‌هایی مانند: lstcolor.Items.Add ("آبی") بارگذاری می‌شوند، سپس هر دو ویژگی Text و Value آیتم فهرست روی مقدار رشته‌ای که شما مشخص می‌کنید تنظیم می‌شوند. برای تنظیم متفاوت آن، باید یک شی مورد لیست ایجاد کنید و سپس آن مورد را به مجموعه اضافه کنید.ویرایشگر ListItemCollection برای افزودن آیتم به لیست کشویی یا جعبه لیست استفاده می شود. این برای ایجاد یک لیست ثابت از آیتم ها استفاده می شود. برای نمایش ویرایشگر مجموعه، از منوی تگ هوشمند، گزینه edit را انتخاب کنید یا کنترل را انتخاب کنید و سپس از ویژگی Item در پنجره خصوصیات، روی دکمه بیضی کلیک کنید.ویژگی های رایج ListItemCollection:توضیحات ملکItem(integer) یک شی ListItem که آیتم را در نمایه مشخص شده نشان می دهد.شمارش تعداد موارد موجود در مجموعه.روش های رایج ListItemCollection:شرح روشهاAdd(string) آیتم جدیدی را در انتهای مجموعه اضافه می کند و پارامتر رشته را به ویژگی Text آیتم اختصاص می دهد.Add(ListItem) یک مورد جدید را در انتهای مجموعه اضافه می کند.Insert(integer, string) یک آیتم را در محل فهرست مشخص شده در مجموعه درج می کند و پارامتر رشته را به ویژگی متن آیتم اختصاص می دهد.Insert(integer, ListItem) مورد را در محل فهرست مشخص شده در مجموعه درج می کند.Remove(string) آیتم را با مقدار متنی مشابه رشته حذف می کند.Remove(ListItem) آیتم مشخص شده را حذف می کند.RemoveAt(integer) آیتم را در نمایه مشخص شده به عنوان عدد صحیح حذف می کند.Clear تمام موارد مجموعه را حذف می کند.FindByValue(string) آیتمی را که مقدار آن همان رشته است را برمی گرداند.FindByValue(Text) موردی را که متن آن همان رشته است را برمی گرداند.لیست دکمه های رادیویی و چک باکس لیستلیست دکمه های رادیویی فهرستی از گزینه های منحصر به فرد را ارائه می دهد. چک باکس لیست لیستی از گزینه های مستقل را نشان می دهد. این کنترل ها شامل مجموعه ای از اشیاء ListItem هستند که می توان از طریق ویژگی Items کنترل به آنها اشاره کرد.نحو اصلی لیست دکمه های رادیویی:<asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged"></asp:RadioButtonList>نحو اصلی لیست چک باکس:<asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged"></asp:CheckBoxList>ویژگی های رایج چک باکس و لیست دکمه های رادیویی:شرح اموالRepeatLayout این ویژگی مشخص می‌کند که آیا تگ‌های جدول یا جریان عادی html برای قالب‌بندی فهرست هنگام رندر استفاده شود. پیش فرض جدول است.RepeatDirection جهتی را که کنترل ها باید تکرار شوند را مشخص می کند. مقادیر موجود افقی و عمودی هستند. پیش فرض عمودی است.RepeatColumns تعداد ستون هایی را که باید هنگام تکرار کنترل ها استفاده شوند را مشخص می کند. پیش فرض 0 است.لیست های گلوله ای و لیست های شماره گذاری شدهکنترل لیست گلوله ای لیست های گلوله ای یا لیست های شماره دار ایجاد می کند. این کنترل ها شامل مجموعه ای از اشیاء ListItem هستند که می توان از طریق ویژگی Items کنترل به آنها اشاره کرد.نحو اصلی یک لیست گلوله ای:<asp:BulletedList ID="BulletedList1" runat="server"></asp:BulletedList>ویژگی های رایج لیست گلوله ای:شرح اموالBulletStyle این ویژگی سبک و ظاهر گلوله ها یا اعداد را مشخص می کند.RepeatDirection جهتی را که کنترل ها باید تکرار شوند را مشخص می کند. مقادیر موجود افقی و عمودی هستند. پیش فرض عمودی است.RepeatColumns تعداد ستون هایی را که باید هنگام تکرار کنترل ها استفاده شوند را مشخص می کند. پیش فرض 0 است.کنترل هایپرلینککنترل HyperLink مانند عنصر <a> HTML است.نحو اصلی برای کنترل هایپرلینک:<asp:HyperLink ID="HyperLink1" runat="server"> HyperLink</asp:HyperLink>دارای خواص مهم زیر است:شرح اموالImageUrl مسیر تصویر که باید توسط کنترل نمایش داده شود.URL پیوند هدف NavigateUrl.متن متنی که به عنوان پیوند نمایش داده می شود.Target پنجره یا فریمی که صفحه پیوند داده شده را بارگیری می کند.کنترل تصویراگر تصویر در دسترس نباشد، از کنترل تصویر برای نمایش تصاویر در صفحه وب یا برخی متن های جایگزین استفاده می شود.نحو اصلی برای کنترل تصویر:<asp:Image ID="Image1" runat="server">دارای خواص مهم زیر است:شرح اموالAlternateText متن جایگزینی که در صورت عدم وجود تصویر نمایش داده می شود.گزینه های تراز ImageAlign برای کنترل.ImageUrl مسیر تصویر که باید توسط کنترل نمایش داده شود.ASP.NET - دستورالعمل هادستورالعمل های ASP.NET دستورالعمل هایی برای تعیین تنظیمات اختیاری مانند ثبت کنترل سفارشی و زبان صفحه هستند. این تنظیمات نحوه پردازش صفحات فرم های وب (aspx.) یا کنترل های کاربر (ascx.) توسط چارچوب Net را توضیح می دهند.نحو برای اعلان یک دایرکتیو به صورت زیر است:<%@ directive_name attribute=value [attribute=value] %>در این بخش فقط به معرفی دستورالعمل های ASP.NET می پردازیم و از اکثر این دستورالعمل ها در طول آموزش استفاده خواهیم کرد.دستورالعمل کاربردیدستورالعمل Application ویژگی های خاص برنامه را تعریف می کند. در بالای فایل global.aspx ارائه شده است.سینتکس اصلی Application Directive به شرح زیر است:<%@ Application Language="C#" %>ویژگی های دستورالعمل برنامه عبارتند از:توضیحات ویژگی هاارث می برد نام کلاسی که از آن ارث می برد.توضیحات توضیحات متنی برنامه. تجزیه کننده ها و کامپایلرها این را نادیده می گیرند.زبان زبانی که در بلوک های کد استفاده می شود.دستورالعمل مجمعدستورالعمل Assembly یک اسمبلی را به صفحه یا برنامه در زمان تجزیه پیوند می دهد. این می تواند در فایل global.asax برای پیوند در سطح برنامه، در فایل صفحه، فایل کنترل کاربر برای پیوند دادن به صفحه یا کنترل کاربر ظاهر شود.دستور اصلی اسمبلی عبارت است از:<%@ Assembly Name ="myassembly" %>ویژگی های دستورالعمل مجمع عبارتند از:توضیحات ویژگی هانام نام مجموعه ای که باید پیوند داده شود.Src مسیر فایل منبعی که باید به صورت پویا پیوند داده و کامپایل شود.دستورالعمل کنترلدستورالعمل کنترل با کنترل های کاربر استفاده می شود و در فایل های کنترل کاربر (ascx.) ظاهر می شود.دستور اصلی دستورات Control به صورت زیر است:<%@ Control Language="C#" EnableViewState="false" %>ویژگی های دستورالعمل کنترل عبارتند از:توضیحات ویژگی هاAutoEventWireup مقدار بولی که ارتباط خودکار رویدادها را به کنترل کننده ها فعال یا غیرفعال می کند.ClassName نام فایل برای کنترل.اشکال زدایی مقدار بولی که کامپایل با نمادهای اشکال زدایی را فعال یا غیرفعال می کند.توضیحات توضیحات متن صفحه کنترل که توسط کامپایلر نادیده گرفته شده است.EnableViewState مقدار بولی که نشان می دهد وضعیت view در درخواست های صفحه حفظ می شود یا خیر.Explicit برای زبان VB، به کامپایلر می گوید که از حالت صریح گزینه استفاده کند.ارث می برد کلاسی که صفحه کنترل از آن ارث می برد.زبان زبان کد و اسکریپت.Src نام فایل برای کلاس کد پشت.Strict برای زبان VB، به کامپایلر می‌گوید که از حالت سخت استفاده کند.بخشنامه اجرا می کنددستورالعمل پیاده سازی نشان می دهد که صفحه وب، صفحه اصلی یا صفحه کنترل کاربر باید رابط فریمورک .Net مشخص شده را پیاده سازی کند.نحو اصلی برای دستورالعمل پیاده سازی به شرح زیر است:<%@ Implements Interface="interface_name" %>دستورالعمل وارداتدستورالعمل Import یک فضای نام را به یک صفحه وب، صفحه کنترل کاربر برنامه وارد می کند. اگر دایرکتیو Import در فایل global.asax مشخص شده باشد، در کل برنامه اعمال می شود. اگر در صفحه ای از صفحه کنترل کاربر باشد، در آن صفحه یا کنترل اعمال می شود.نحو اصلی برای دستور واردات عبارت است از:<%@ namespace="System.Drawing" %>دستورالعمل اصلیدستورالعمل Master یک فایل صفحه را به عنوان صفحه اصلی مشخص می کند.نحو اصلی دستورالعمل نمونه MasterPage به شرح زیر است:<%@ MasterPage Language="C#" AutoEventWireup="true" CodeFile="SiteMater.master.cs" Inherits="SiteMaster" %>دستورالعمل MasterTypeدستورالعمل MasterType یک نام کلاس را به ویژگی Master یک صفحه اختصاص می دهد تا آن را به شدت تایپ کند.نحو اصلی دستور MasterType عبارت است از:<%@ MasterType attribute="value"[attribute="value" ...] %>دستورالعمل OutputCacheدستور OutputCache سیاست های کش خروجی یک صفحه وب یا کنترل کاربر را کنترل می کند.نحو اصلی دستور OutputCache عبارت است از:<%@ OutputCache Duration="15" VaryByParam="None" %>دستورالعمل صفحهدستورالعمل Page ویژگی های خاص فایل صفحه را برای تجزیه کننده صفحه و کامپایلر تعریف می کند.دستور اصلی Page Directive به صورت زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Trace="true" %>ویژگی های دستورالعمل Page عبارتند از:توضیحات ویژگی هاAutoEventWireup مقدار بولی که رویدادهای صفحه را فعال یا غیرفعال می کند که به طور خودکار به متدها متصل می شوند. به عنوان مثال، Page_Load.بافر مقدار بولی که بافر پاسخ HTTP را فعال یا غیرفعال می کند.ClassName نام کلاس برای صفحه.ClientTarget مرورگری که سرور برای آن کنترل می کند باید محتوا را ارائه دهد.CodeFile نام کد پشت فایل.اشکال زدایی مقدار بولی که کامپایل با نمادهای اشکال زدایی را فعال یا غیرفعال می کند.توضیحات توضیحات متنی صفحه که توسط تجزیه کننده نادیده گرفته شده است.EnableSessionState فعال، غیرفعال یا حالت جلسه را فقط خواندنی می کند.EnableViewState مقدار بولی که حالت view را در درخواست‌های صفحه فعال یا غیرفعال می‌کند.آدرس صفحه خطا برای هدایت مجدد در صورت بروز استثنای صفحه کنترل نشده.ارث می برد نام کد پشت یا کلاس دیگر.زبان زبان برنامه نویسی برای کد.Src نام فایل کد پشت کلاس.Trace ردیابی را فعال یا غیرفعال می کند.TraceMode نشان می دهد که چگونه پیام های ردیابی نمایش داده می شوند و بر اساس زمان یا دسته بندی مرتب می شوند.تراکنش نشان می دهد که آیا تراکنش ها پشتیبانی می شوند یا خیر.ValidateRequest مقدار بولی که نشان می دهد که آیا تمام داده های ورودی در برابر لیستی از مقادیر کدگذاری شده اعتبارسنجی شده اند یا خیر.دستورالعمل PreviousPageTypeدستورالعمل PreviousPageType یک کلاس را به یک صفحه اختصاص می دهد، به طوری که صفحه به شدت تایپ می شود.نحو اصلی برای نمونه دستور PreviousPagetype به شرح زیر است:<%@ PreviousPageType attribute="value"[attribute="value" ...] %>دستورالعمل مرجعدستورالعمل مرجع نشان می دهد که صفحه یا کنترل کاربر دیگری باید کامپایل شده و به صفحه فعلی پیوند داده شود.نحو اصلی دستورالعمل مرجع به شرح زیر است:<%@ Reference Page ="somepage.aspx" %>دستورالعمل ثبتمشتق Register برای ثبت کنترل های سرور سفارشی و کنترل های کاربر استفاده می شود.نحو اصلی دستور ثبت به شرح زیر است:<%@ Register Src="~/footer.ascx" TagName="footer" TagPrefix="Tfooter" %>ASP.NET - مدیریت ایالتپروتکل انتقال ابر متن (HTTP) یک پروتکل بدون حالت است. وقتی کلاینت از سرور قطع می شود، موتور ASP.NET اشیاء صفحه را دور می زند. به این ترتیب، هر برنامه وب می‌تواند برای ارائه درخواست‌های متعدد به طور همزمان، بدون اینکه حافظه سرور تمام شود، افزایش یابد.با این حال، باید تکنیکی برای ذخیره اطلاعات بین درخواست‌ها و بازیابی آن در صورت لزوم وجود داشته باشد. این اطلاعات یعنی مقدار فعلی همه کنترل‌ها و متغیرها برای کاربر فعلی در جلسه جاری State نامیده می‌شود.ASP.NET چهار نوع حالت را مدیریت می کند:مشاهده وضعیتحالت کنترلوضعیت جلسهوضعیت برنامهمشاهده وضعیتحالت view وضعیت صفحه و تمام کنترل های آن است. این به طور خودکار در سراسر پست توسط چارچوب ASP.NET نگهداری می شود.هنگامی که یک صفحه به مشتری ارسال می شود، تغییرات در ویژگی های صفحه و کنترل های آن تعیین می شود و در مقدار یک فیلد ورودی مخفی به نام _VIEWSTATE ذخیره می شود. هنگامی که صفحه دوباره ارسال شد، فیلد _VIEWSTATE با درخواست HTTP به سرور ارسال می شود.وضعیت view را می توان برای موارد زیر فعال یا غیرفعال کرد:کل برنامه با تنظیم ویژگی EnableViewState در بخش <pages> فایل web.config.صفحه ای با تنظیم ویژگی EnableViewState دستورالعمل Page، به عنوان <%@ Page Language="C#" EnableViewState="false" %>یک کنترل با تنظیم ویژگی Control.EnableViewState.با استفاده از یک شیء حالت view تعریف شده توسط کلاس StateBag که مجموعه ای از آیتم های حالت view را تعریف می کند، پیاده سازی می شود. کیسه حالت یک ساختار داده حاوی جفت ارزش ویژگی است که به عنوان رشته های مرتبط با اشیا ذخیره می شود.کلاس StateBag دارای ویژگی های زیر است:توضیحات خواصItem(name) مقدار مورد حالت view با نام مشخص شده. این ویژگی پیش فرض کلاس StateBag است.شمارش تعداد موارد موجود در مجموعه حالت view.کلیدها مجموعه ای از کلیدها برای همه موارد موجود در مجموعه.ارزش ها مجموعه ای از مقادیر برای همه موارد موجود در مجموعه.کلاس StateBag متدهای زیر را دارد:شرح روشهاافزودن (نام، مقدار) یک مورد را به مجموعه حالت view اضافه می کند و مورد موجود به روز می شود.Clear همه موارد را از مجموعه حذف می کند.Equals(Object) تعیین می کند که آیا شی مشخص شده با شی فعلی برابر است یا خیر.Finalize به آن اجازه می دهد منابع را آزاد کند و سایر عملیات پاکسازی را انجام دهد.GetEnumerator شمارشگری را برمی‌گرداند که روی تمام جفت‌های کلید/مقدار اشیاء StateItem ذخیره شده در شی StateBag تکرار می‌شود.GetType نوع نمونه فعلی را دریافت می کند.IsItemDirty یک شی StateItem ذخیره شده در شی StateBag را بررسی می کند تا بررسی کند که آیا تغییر یافته است یا خیر.Remove(name) مورد مشخص شده را حذف می کند.SetDirty وضعیت شی StateBag و همچنین ویژگی Dirty هر یک از اشیاء StateItem موجود در آن را تنظیم می کند.SetItemDirty ویژگی Dirty را برای شی StateItem مشخص شده در شی StateBag تنظیم می کند.ToString رشته ای را برمی گرداند که نشان دهنده شی کیسه حالت است.مثالمثال زیر مفهوم ذخیره سازی حالت نمایش را نشان می دهد. اجازه دهید یک شمارنده نگه داریم که هر بار که صفحه به عقب ارسال می شود با کلیک کردن بر روی دکمه ای در صفحه افزایش می یابد. یک کنترل برچسب مقدار را در شمارنده نشان می دهد.کد فایل نشانه گذاری به شرح زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="statedemo._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <h3>View State demo</h3> Page Counter: <asp:Label ID="lblCounter" runat="server" /> <asp:Button ID="btnIncrement" runat="server" Text="Add Count" ="btnIncrement_Click" /> </div> </form> </body></html>کد پشت فایل برای مثال در اینجا نشان داده شده است:public partial class _Default : System.Web.UI.Page{ public int counter { get { if (ViewState["pcounter"] != null) { return ((int)ViewState["pcounter"]); } else { return 0; } } set { ViewState["pcounter"] = value; } } protected void Page_Load(object sender, EventArgs e) { lblCounter.Text = counter.ToString(); counter++; }}نتیجه زیر را ایجاد خواهد کرد:حالت کنترلوضعیت کنترل را نمی توان تغییر داد، مستقیماً به آن دسترسی پیدا کرد یا غیرفعال کرد.وضعیت جلسههنگامی که یک کاربر به یک وب سایت ASP.NET متصل می شود، یک شی جلسه جدید ایجاد می شود. هنگامی که وضعیت جلسه روشن است، برای هر درخواست جدید یک شیء وضعیت جلسه جدید ایجاد می شود. این شیء وضعیت جلسه بخشی از متن می شود و از طریق صفحه در دسترس است.حالت جلسه معمولاً برای ذخیره داده های برنامه مانند موجودی، لیست تامین کنندگان، سوابق مشتری یا سبد خرید استفاده می شود. همچنین می تواند اطلاعات کاربر و ترجیحات او را حفظ کند و عملیات در حال انتظار را پیگیری کند.جلسات با یک SessionID 120 بیتی شناسایی و ردیابی می شوند که از کلاینت به سرور منتقل می شود و به عنوان کوکی یا URL تغییر یافته باز می گردد. SessionID در سطح جهانی منحصر به فرد و تصادفی است.شیء وضعیت جلسه از کلاس HttpSessionState ایجاد می شود که مجموعه ای از آیتم های وضعیت جلسه را تعریف می کند.کلاس HttpSessionState دارای ویژگی های زیر است:توضیحات خواصSessionID شناسه منحصر به فرد جلسه.Item(name) مقدار آیتم حالت جلسه با نام مشخص شده. این ویژگی پیش فرض کلاس HttpSessionState است.شمارش تعداد موارد موجود در مجموعه حالت جلسه.TimeOut مقدار زمان مجاز بین درخواست‌ها را قبل از پایان دادن به جلسه توسط ارائه‌دهنده وضعیت جلسه دریافت و تنظیم می‌کند.کلاس HttpSessionState متدهای زیر را دارد:شرح روشهاAdd(name, value) آیتمی را به مجموعه وضعیت جلسه اضافه می کند.Clear تمام موارد را از مجموعه وضعیت جلسه حذف می کند.Remove(name) آیتم مشخص شده را از مجموعه وضعیت جلسه حذف می کند.RemoveAll تمام کلیدها و مقادیر را از مجموعه وضعیت جلسه حذف می کند.RemoveAt یک مورد را در یک فهرست مشخص از مجموعه وضعیت جلسه حذف می کند.شیء وضعیت جلسه یک جفت نام-مقدار برای ذخیره و بازیابی برخی اطلاعات از شیء وضعیت جلسه است. برای همین می توانید از کد زیر استفاده کنید:void StoreSessionInfo(){ String fromuser = TextBox1.Text; Session["fromuser"] = fromuser;}void RetrieveSessionInfo(){ String fromuser = Session["fromuser"]; Label1.Text = fromuser;}کد بالا فقط رشته‌ها را در شی دیکشنری Session ذخیره می‌کند، با این حال، می‌تواند تمام انواع داده‌های اولیه و آرایه‌های متشکل از انواع داده‌های اولیه، و همچنین اشیاء DataSet، DataTable، HashTable و Image و همچنین هر کاربر را ذخیره کند. کلاس تعریف شده ای که از شی ISerializable به ارث می برد.مثالمثال زیر مفهوم ذخیره‌سازی وضعیت جلسه را نشان می‌دهد. دو دکمه در صفحه وجود دارد، یک کادر متن برای وارد کردن رشته و یک برچسب برای نمایش متن ذخیره شده از جلسه گذشته.کد فایل علامت گذاری به صورت زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> &nbsp; &nbsp; &nbsp; <table style="width: 568px; height: 103px"> <tr> <td style="width: 209px"> <asp:Label ID="lblstr" runat="server" Text="Enter a String" style="width:94px"> </asp:Label> </td> <td style="width: 317px"> <asp:TextBox ID="txtstr" runat="server" style="width:227px"> </asp:TextBox> </td> </tr> <tr> <td style="width: 209px"></td> <td style="width: 317px"></td> </tr> <tr> <td style="width: 209px"> <asp:Button ID="btnnrm" runat="server" Text="No action button" style="width:128px" /> </td> <td style="width: 317px"> <asp:Button ID="btnstr" runat="server" ="btnstr_Click" Text="Submit the String" /> </td> </tr> <tr> <td style="width: 209px"> </td> <td style="width: 317px"> </td> </tr> <tr> <td style="width: 209px"> <asp:Label ID="lblsession" runat="server" style="width:231px" > </asp:Label> </td> <td style="width: 317px"> </td> </tr> <tr> <td style="width: 209px"> <asp:Label ID="lblshstr" runat="server"> </asp:Label> </td> <td style="width: 317px"> </td> </tr> </table> </div> </form> </body></html>در نمای طراحی باید به شکل زیر باشد:کد پشت فایل در اینجا آورده شده است:public partial class _Default : System.Web.UI.Page { String mystr; protected void Page_Load(object sender, EventArgs e) { this.lblshstr.Text = this.mystr; this.lblsession.Text = (String)this.Session["str"]; } protected void btnstr_Click(object sender, EventArgs e) { this.mystr = this.txtstr.Text; this.Session["str"] = this.txtstr.Text; this.lblshstr.Text = this.mystr; this.lblsession.Text = (String)this.Session["str"]; }}فایل را اجرا کنید و نحوه عملکرد آن را مشاهده کنید:وضعیت برنامهبرنامه ASP.NET مجموعه ای از تمام صفحات وب، کدها و فایل های دیگر در یک دایرکتوری مجازی در یک وب سرور است. هنگامی که اطلاعات در حالت برنامه ذخیره می شود، برای همه کاربران در دسترس است.برای فراهم کردن امکان استفاده از وضعیت برنامه، ASP.NET یک شیء حالت برنامه برای هر برنامه از کلاس HTTPApplicationState ایجاد می کند و این شی را در حافظه سرور ذخیره می کند. این شی با فایل کلاس global.asax نمایش داده می شود.Application State بیشتر برای ذخیره شمارنده های آماری و سایر داده های آماری، داده های جهانی برنامه مانند نرخ مالیات، نرخ تخفیف و غیره و برای حفظ ردیابی کاربرانی که از سایت بازدید می کنند استفاده می شود.کلاس HttpApplicationState دارای ویژگی های زیر است:توضیحات خواصItem(name) مقدار مورد دولت برنامه با نام مشخص شده. این ویژگی پیش فرض کلاس HttpApplicationState است.شمارش تعداد موارد موجود در مجموعه حالت برنامه.کلاس HttpApplicationState متدهای زیر را دارد:شرح روشهاAdd(name, value) یک مورد را به مجموعه حالت برنامه اضافه می کند.Clear همه موارد را از مجموعه حالت برنامه حذف می کند.Remove(name) آیتم مشخص شده را از مجموعه حالت برنامه حذف می کند.RemoveAll تمام اشیاء را از مجموعه HttpApplicationState حذف می کند.RemoveAt یک شی HttpApplicationState را از مجموعه بر اساس فهرست حذف می کند.Lock() مجموعه حالت برنامه را قفل می کند تا فقط کاربر فعلی بتواند به آن دسترسی داشته باشد.Unlock() مجموعه حالت برنامه را باز می کند تا همه کاربران بتوانند به آن دسترسی داشته باشند.داده‌های وضعیت برنامه عموماً توسط کنترل‌کننده‌های نوشتن برای رویدادها نگهداری می‌شوند:Application_StartApplication_Endخطای برنامهSession_StartSession_Endقطعه کد زیر دستور اولیه برای ذخیره اطلاعات وضعیت برنامه را نشان می دهد:Void Application_Start(object sender, EventArgs e){ Application["startMessage"] = "The application has started.";}Void Application_End(object sender, EventArgs e){ Application["endtMessage"] = "The application has ended.";}ASP.NET - اعتبار سنجیکنترل‌های اعتبارسنجی ASP.NET داده‌های ورودی کاربر را تأیید می‌کنند تا اطمینان حاصل شود که داده‌های بی‌فایده، احراز هویت نشده یا متناقض ذخیره نمی‌شوند.ASP.NET کنترل های اعتبارسنجی زیر را ارائه می دهد:RequiredField ValidatorRangeValidatorCompare ValidatorRegularExpressionValidatorCustom Validatorاعتبار سنجی خلاصهکلاس BaseValidatorکلاس‌های کنترل اعتبارسنجی از کلاس BaseValidator به ارث برده می‌شوند، بنابراین ویژگی‌ها و روش‌های آن را به ارث می‌برند. بنابراین، نگاهی به ویژگی‌ها و روش‌های این کلاس پایه، که برای همه کنترل‌های اعتبارسنجی مشترک هستند، کمک می‌کند:توضیحات اعضاControlToValidate کنترل ورودی را برای تأیید اعتبار نشان می دهد.نمایشگر نحوه نمایش پیام خطا را نشان می دهد.EnableClientScript نشان می دهد که آیا اعتبار سنجی سمت مشتری انجام می شود یا خیر.Enabled تایید کننده را فعال یا غیرفعال می کند.ErrorMessage رشته خطا را نشان می دهد.متن خطای متن در صورت عدم موفقیت در تأیید، نشان داده می شود.IsValid نشان می دهد که آیا مقدار کنترل معتبر است یا خیر.SetFocusOnError نشان می دهد که آیا در صورت وجود یک کنترل نامعتبر، فوکوس باید به کنترل ورودی مرتبط تغییر کند یا خیر.ValidationGroup گروه منطقی چند اعتبار سنج که این کنترل به آن تعلق دارد.Validate() این متد کنترل را مجدداً تأیید می کند و ویژگی IsValid را به روز می کند.RequiredFieldValidator Controlکنترل RequiredFieldValidator تضمین می کند که فیلد مورد نیاز خالی نیست. به طور کلی به یک جعبه متن گره خورده است تا ورودی را به جعبه متن اجباری کند.سینتکس کنترل به صورت زیر است:<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"></asp:RequiredFieldValidator>RangeValidator Controlکنترل RangeValidator تأیید می کند که مقدار ورودی در یک محدوده از پیش تعیین شده قرار می گیرد.دارای سه ویژگی خاص است:توضیحات خواصنوع این نوع داده ها را مشخص می کند. مقادیر موجود عبارتند از: ارز، تاریخ، دو برابر، عدد صحیح و رشته.MinimumValue حداقل مقدار محدوده را مشخص می کند.MaximumValue حداکثر مقدار محدوده را مشخص می کند.سینتکس کنترل به صورت زیر است:<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"></asp:RangeValidator>CompareValidator Controlکنترل CompareValidator یک مقدار در یک کنترل را با یک مقدار ثابت یا یک مقدار در یک کنترل دیگر مقایسه می کند.دارای خواص ویژه زیر است:توضیحات خواصنوع این نوع داده را مشخص می کند.ControlToCompare مقدار کنترل ورودی را برای مقایسه با آن مشخص می کند.ValueToCompare مقدار ثابتی را برای مقایسه با آن مشخص می کند.اپراتور عملگر مقایسه را مشخص می کند، مقادیر موجود عبارتند از: Equal، NotEqual، GreaterThan، GreaterThanEqual، LessThan، LessThanEqual و DataTypeCheck.سینتکس اصلی کنترل به شرح زیر است:<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>RegularExpressionValidatorRegularExpressionValidator اجازه می دهد تا متن ورودی را با تطبیق با الگوی یک عبارت منظم اعتبار سنجی کنید. عبارت منظم در ویژگی ValidationExpression تنظیم شده است.جدول زیر ساختارهای نحو رایج مورد استفاده برای عبارات منظم را خلاصه می کند:شرح فرارهای شخصیت\b با بک اسپیس مطابقت دارد.\t با یک برگه مطابقت دارد.با بازگشت کالسکه مطابقت دارد.\v با یک برگه عمودی مطابقت دارد.\f با فید فرم مطابقت دارد.\n با یک خط جدید مطابقت دارد.\ شخصیت فرار.جدای از تطابق یک کاراکتر، یک کلاس از کاراکترها را می توان مشخص کرد که می توان آنها را با هم تطبیق داد، به نام متاکاراکترها.توضیحات متا کاراکترها. با هر کاراکتری به جز \n مطابقت دارد.[abcd] با هر شخصیت در مجموعه مطابقت دارد.[^abcd] هر شخصیتی را در مجموعه حذف می کند.[2-7a-mA-M] با هر نویسه مشخص شده در محدوده مطابقت دارد.\w با هر نویسه الفبایی عددی و خط زیر مطابقت دارد.\W با هر کاراکتر غیر کلمه ای مطابقت دارد.\s با کاراکترهای فضای خالی مانند، فاصله، برگه، خط جدید و غیره مطابقت دارد.\S با هر کاراکتر غیر فضای سفید مطابقت دارد.\d با هر کاراکتر اعشاری مطابقت دارد.\D با هر کاراکتر غیر اعشاری مطابقت دارد.برای تعیین تعداد دفعاتی که یک کاراکتر ظاهر می شود، می توان کمیت کننده ها را اضافه کرد.شرح کمیت* صفر یا بیشتر مسابقات.+ یک یا چند مسابقه.? صفر یا یک مسابقه.{N} N مطابقت دارد.{N،} N یا بیشتر منطبق است.{N,M} بین N و M مطابقت.سینتکس کنترل به صورت زیر است:<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"></asp:RegularExpressionValidator>Custom Validatorکنترل CustomValidator اجازه می دهد تا روال های اعتبار سنجی سفارشی خاص برنامه را برای اعتبار سنجی سمت مشتری و سرور بنویسید.اعتبار سنجی سمت مشتری از طریق ویژگی ClientValidationFunction انجام می شود. روال اعتبارسنجی سمت سرویس گیرنده باید به زبان برنامه نویسی مانند جاوا اسکریپت یا VBScript نوشته شود که مرورگر بتواند آن را بفهمد.روال اعتبارسنجی سمت سرور باید از کنترل کننده رویداد ServerValidate کنترل فراخوانی شود. روال اعتبارسنجی سمت سرور باید به هر زبان دات نت مانند C# یا VB.Net نوشته شود.نحو اصلی برای کنترل به شرح زیر است:<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"></asp:CustomValidator>اعتبار سنجی خلاصهکنترل ValidationSummary هیچ اعتبارسنجی انجام نمی دهد اما خلاصه ای از تمام خطاهای صفحه را نشان می دهد. خلاصه مقادیر خاصیت ErrorMessage را در تمام کنترل‌های اعتبارسنجی که اعتبارسنجی ناموفق هستند را نشان می‌دهد.دو ویژگی متقابل زیر پیام خطا را فهرست می کنند:ShowSummary: پیام های خطا را در قالب مشخص شده نشان می دهد.ShowMessageBox: پیام های خطا را در یک پنجره جداگانه نشان می دهد.نحو برای کنترل به صورت زیر است:<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />گروه های اعتبارسنجیصفحات پیچیده دارای گروه های مختلفی از اطلاعات هستند که در پنل های مختلف ارائه می شوند. در چنین شرایطی، ممکن است نیاز به انجام اعتبارسنجی جداگانه برای گروه جداگانه ایجاد شود. این نوع وضعیت با استفاده از گروه های اعتبار سنجی مدیریت می شود.برای ایجاد یک گروه اعتبارسنجی، باید کنترل‌های ورودی و کنترل‌های اعتبارسنجی را با تنظیم ویژگی ValidationGroup در یک گروه منطقی قرار دهید.مثالمثال زیر فرمی را توصیف می کند که باید توسط همه دانش آموزان یک مدرسه، که به چهار مجلس تقسیم شده است، برای انتخاب رئیس مدرسه پر کنند. در اینجا، ما از کنترل های اعتبارسنجی برای تایید ورودی کاربر استفاده می کنیم.این فرم در نمای طراحی است:کد فایل محتوا به صورت زیر است:<form id="form1" runat="server"> <table style="width: 66%;"> <tr> <td class="style1" colspan="3" align="center"> <asp:Label ID="lblmsg" Text="President Election Form : Choose your president" runat="server" /> </td> </tr> <tr> <td class="style3"> Candidate: </td> <td class="style2"> <asp:DropDownList ID="ddlcandidate" runat="server" style="width:239px"> <asp:ListItem>Please Choose a Candidate</asp:ListItem> <asp:ListItem>M H Kabir</asp:ListItem> <asp:ListItem>Steve Taylor</asp:ListItem> <asp:ListItem>John Abraham</asp:ListItem> <asp:ListItem>Venus Williams</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"> </asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style3"> House: </td> <td class="style2"> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>Red</asp:ListItem> <asp:ListItem>Blue</asp:ListItem> <asp:ListItem>Yellow</asp:ListItem> <asp:ListItem>Green</asp:ListItem> </asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="server" ControlToValidate="rblhouse" ErrorMessage="Enter your house name" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td class="style3"> Class: </td> <td class="style2"> <asp:TextBox ID="txtclass" runat="server"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"> </asp:RangeValidator> </td> </tr> <tr> <td class="style3"> Email: </td> <td class="style2"> <asp:TextBox ID="txtemail" runat="server" style="width:250px"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="Enter your email" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td class="style3" align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" ="btnsubmit_Click" style="text-align: center" Text="Submit" style="width:140px" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Errors:" /></form>کد پشت دکمه ارسال:protected void btnsubmit_Click(object sender, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "Thank You"; } else { lblmsg.Text = "Fill up all the fields"; }}ASP.NET - دسترسی به پایگاه دادهASP.NET امکان دسترسی و استفاده از منابع داده زیر را فراهم می کند:پایگاه های داده (به عنوان مثال، Access، SQL Server، Oracle، MySQL)اسناد XMLاشیاء تجاریفایل های تختASP.NET فرآیندهای پیچیده دسترسی به داده ها را پنهان می کند و سطح بسیار بالاتری از کلاس ها و اشیاء را فراهم می کند که از طریق آنها به داده ها به راحتی دسترسی پیدا می شود. این کلاس ها همه کدگذاری های پیچیده برای اتصال، بازیابی داده ها، پرس و جوی داده ها و دستکاری داده ها را پنهان می کنند.ADO.NET فناوری است که پلی را بین اشیاء کنترلی مختلف ASP.NET و منبع داده باطن ایجاد می کند. در این آموزش به طور خلاصه به دسترسی به داده ها و کار با داده ها خواهیم پرداخت.بازیابی و نمایش داده هابرای بازیابی و نمایش داده ها در ASP.NET به دو نوع کنترل داده نیاز است:کنترل منبع داده - اتصال به داده ها، انتخاب داده ها و کارهای دیگر مانند صفحه بندی و ذخیره داده ها و غیره را مدیریت می کند.یک کنترل نمای داده - داده ها را متصل می کند و نمایش می دهد و اجازه دستکاری داده ها را می دهد.بعداً در مورد کنترل‌های اتصال داده و منبع داده به تفصیل بحث خواهیم کرد. در این بخش از یک کنترل SqlDataSource برای دسترسی به داده ها و یک کنترل GridView برای نمایش و دستکاری داده ها در این فصل استفاده خواهیم کرد.ما همچنین از یک پایگاه داده Access استفاده خواهیم کرد که حاوی جزئیات کتاب های .Net موجود در بازار است. نام پایگاه داده ما ASPDotNetStepByStep.mdb است و از جدول داده DotNetReferences استفاده خواهیم کرد.این جدول دارای ستون های زیر است: ID، عنوان، AuthorFirstName، AuthorLastName، موضوع و Publisher.در اینجا یک عکس فوری از جدول داده است:ASP.NET - دسترسی به پایگاه دادASP.NET امکان دسترسی و استفاده از منبع داده زیر را فراهم می کند:پایگاه های داده (به عنوان مثال، Access، SQL Server، Oracle، MySQL)اسناد XMLاشیاء تجاریفایل های تختASP.NET فرآیندهای پیچیده دسترسی به داده ها را پنهان می کند و سطح بسیار بالاتری از کلاس ها و اشیاء را فراهم می کند که از طریق آنها به داده ها به راحتی دسترسی پیدا می شود. این کلاس ها همه کدگذاری های پیچیده برای اتصال، بازیابی داده ها، پرس و جوی داده ها و دستکاری داده ها را پنهان می کنند.ADO.NET فناوری است که پلی را بین اشیاء کنترلی مختلف ASP.NET و منبع داده باطن ایجاد می کند. در این آموزش به طور خلاصه به دسترسی به داده ها و کار با داده ها خواهیم پرداخت.بازیابی و نمایش داده هابرای بازیابی و نمایش داده ها در ASP.NET به دو نوع کنترل داده نیاز است:کنترل منبع داده - اتصال به داده ها، انتخاب داده ها و کارهای دیگر مانند صفحه بندی و ذخیره داده ها و غیره را مدیریت می کند.یک کنترل نمای داده - داده ها را متصل می کند و نمایش می دهد و اجازه دستکاری داده ها را می دهد.بعداً در مورد کنترل‌های اتصال داده و منبع داده به تفصیل بحث خواهیم کرد. در این بخش از یک کنترل SqlDataSource برای دسترسی به داده ها و یک کنترل GridView برای نمایش و دستکاری داده ها در این فصل استفاده خواهیم کرد.ما همچنین از یک پایگاه داده Access استفاده خواهیم کرد که حاوی جزئیات کتاب های .Net موجود در بازار است. نام پایگاه داده ما ASPDotNetStepByStep.mdb است و از جدول داده DotNetReferences استفاده خواهیم کرد.این جدول دارای ستون های زیر است: ID، عنوان، AuthorFirstName، AuthorLastName، موضوع و Publisher.در اینجا یک عکس فوری از جدول داده است:اجازه دهید مستقیماً به سمت عمل حرکت کنیم، مراحل زیر را انجام دهیم:(1) یک وب سایت ایجاد کنید و یک کنترل SqlDataSource را در فرم وب اضافه کنید.(2) روی گزینه Configure Data Source کلیک کنید.(3) روی دکمه New Connection کلیک کنید تا با یک پایگاه داده ارتباط برقرار کنید.(4) هنگامی که اتصال راه اندازی شد، می توانید آن را برای استفاده بیشتر ذخیره کنید. در مرحله بعد، از شما خواسته می شود دستور select را پیکربندی کنید:(5) ستون ها را انتخاب کنید و برای تکمیل مراحل روی next کلیک کنید. دکمه های WHERE، ORDER BY و Advanced را مشاهده کنید. این دکمه ها به شما این امکان را می دهند که عبارت Where، order by clause را ارائه دهید و به ترتیب دستورهای insert، update و delete SQL را مشخص کنید. به این ترتیب می توانید داده ها را دستکاری کنید.(6) یک کنترل GridView را به فرم اضافه کنید. منبع داده را انتخاب کنید و کنترل را با استفاده از گزینه AutoFormat فرمت کنید.(7) پس از این، کنترل GridView فرمت شده عناوین ستون ها را نمایش می دهد، و برنامه آماده اجرا است.(8) در نهایت برنامه را اجرا کنید.کد فایل محتوا به صورت زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dataaccess.aspx.cs" Inherits="datacaching.WebForm1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString= "<%$ ConnectionStrings:ASPDotNetStepByStepConnectionString%>" ProviderName= "<%$ ConnectionStrings: ASPDotNetStepByStepConnectionString.ProviderName %>" SelectCommand="SELECT [Title], [AuthorLastName], [AuthorFirstName], [Topic] FROM [DotNetReferences]"> </asp:SqlDataSource> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None"> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <Columns> <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> <asp:BoundField DataField="AuthorLastName" HeaderText="AuthorLastName" SortExpression="AuthorLastName" /> <asp:BoundField DataField="AuthorFirstName" HeaderText="AuthorFirstName" SortExpression="AuthorFirstName" /> <asp:BoundField DataField="Topic" HeaderText="Topic" SortExpression="Topic" /> </Columns> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#999999" /> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> </asp:GridView> </div> </form> </body></html>