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

ADO.NETADO.NET پلی بین کنترل های جلویی و پایگاه داده پشتی فراهم می کند. اشیاء ADO.NET تمام عملیات دسترسی به داده ها را محصور می کنند و کنترل ها با این اشیاء تعامل دارند تا داده ها را نمایش دهند، بنابراین جزئیات حرکت داده ها را پنهان می کنند.شکل زیر اشیاء ADO.NET را در یک نگاه نشان می دهد:کلاس DataSetمجموعه داده نشان دهنده زیر مجموعه ای از پایگاه داده است. اتصال مداوم به پایگاه داده ندارد. برای به روز رسانی پایگاه داده نیاز به اتصال مجدد است. DataSet شامل اشیاء DataTable و DataRelation است. اشیاء DataRelation نشان دهنده رابطه بین دو جدول است.جدول زیر برخی از ویژگی های مهم کلاس DataSet را نشان می دهد:توضیحات خواصCaseSensitive نشان می دهد که آیا مقایسه رشته ها در جداول داده ها به حروف بزرگ و کوچک حساس هستند یا خیر.Container محفظه کامپوننت را می گیرد.DataSetName نام مجموعه داده فعلی را دریافت یا تنظیم می کند.DefaultViewManager نمایی از داده ها را در مجموعه داده برمی گرداند.DesignMode نشان می دهد که آیا جزء در حال حاضر در حالت طراحی است یا خیر.EnforceConstraints نشان می دهد که آیا هنگام تلاش برای هر عملیات به روز رسانی از قوانین محدودیت پیروی می شود یا خیر.رویدادها فهرستی از کنترل‌کننده‌های رویداد را دریافت می‌کند که به این مؤلفه متصل شده‌اند.ExtendedProperties مجموعه ای از اطلاعات کاربر سفارشی شده مرتبط با DataSet را دریافت می کند.HasErrors نشان می دهد که آیا هر گونه خطا وجود دارد.IsInitialized نشان می دهد که آیا DataSet مقداردهی اولیه شده است یا خیر.Locale اطلاعات محلی مورد استفاده برای مقایسه رشته ها در جدول را دریافت یا تنظیم می کند.Namespace فضای نام DataSet را دریافت یا تنظیم می کند.پیشوند یک پیشوند XML که نام مستعار فضای نام DataSet را دریافت می کند یا تنظیم می کند.Relations مجموعه ای از اشیاء DataRelation را برمی گرداند.Tables مجموعه ای از اشیاء DataTable را برمی گرداند.جدول زیر چند روش مهم کلاس DataSet را نشان می دهد:شرح روشهاAcceptChanges تمام تغییرات ایجاد شده از زمان بارگیری DataSet یا فراخوانی این متد را می پذیرد.BeginInit شروع به مقدار دهی اولیه DataSet می کند. مقداردهی اولیه در زمان اجرا اتفاق می افتد.پاک کردن داده ها را پاک می کند.Clone ساختار DataSet را کپی می کند، شامل تمام طرحواره ها، روابط و محدودیت های DataTable. هیچ داده ای را کپی نمی کند.کپی ساختار و داده ها را کپی می کند.CreateDataReader() یک DataTableReader را با یک مجموعه نتیجه در هر DataTable، به همان ترتیبی که جداول در مجموعه جداول ظاهر می شوند، برمی گرداند.CreateDataReader(DataTable[]) DataTableReader را با یک مجموعه نتیجه در هر DataTable برمی گرداند.EndInit به مقدار دهی اولیه مجموعه داده پایان می دهد.Equals(Object) تعیین می کند که آیا شی مشخص شده با شی فعلی برابر است یا خیر.منابع رایگان را نهایی کنید و پاکسازی های دیگر را انجام دهید.GetChanges یک کپی از DataSet را با تمام تغییرات ایجاد شده از زمان بارگیری یا فراخوانی متد AcceptChanges برمی گرداند.GetChanges(DataRowState) یک کپی از DataSet با تمام تغییرات ایجاد شده از زمان بارگیری یا فراخوانی متد AcceptChanges دریافت می کند که توسط DataRowState فیلتر شده است.GetDataSetSchema یک کپی از XmlSchemaSet برای DataSet دریافت می کند.GetObjectData یک شی اطلاعات سریال سازی را با داده های مورد نیاز برای سریال سازی DataSet پر می کند.GetType نوع نمونه فعلی را دریافت می کند.GetXML نمایش XML داده ها را برمی گرداند.GetXMLSchema طرح XSD را برای نمایش XML داده ها برمی گرداند.HasChanges() مقداری را دریافت می کند که نشان می دهد آیا DataSet تغییراتی دارد، از جمله ردیف های جدید، حذف شده یا اصلاح شده.HasChanges(DataRowState) مقداری را دریافت می کند که نشان می دهد آیا DataSet تغییراتی دارد، از جمله ردیف های جدید، حذف شده یا اصلاح شده، فیلتر شده توسط DataRowState.IsBinarySerialized فرمت نمایش سریالی DataSet را بررسی می کند.Load(IDataReader، LoadOption، DataTable[]) با استفاده از IDataReader ارائه‌شده، با استفاده از آرایه‌ای از نمونه‌های DataTable برای ارائه اطلاعات طرح‌واره و فضای نام، یک DataSet را با مقادیر یک منبع داده پر می‌کند.Load(IDataReader، LoadOption، String[]) یک DataSet را با مقادیر یک منبع داده با استفاده از IDataReader ارائه شده پر می کند، با استفاده از آرایه ای از رشته ها برای تهیه نام برای جداول در DataSet.Merge() داده ها را با داده های DataSet دیگر ادغام می کند. این روش دارای اشکال مختلف بارگذاری شده است.ReadXML() یک طرح و داده XML را در DataSet می خواند. این روش دارای اشکال مختلف بارگذاری شده است.ReadXMLSchema(0) یک طرح XML را در DataSet می خواند. این روش دارای اشکال مختلف بارگذاری شده است.RejectChanges همه تغییرات ایجاد شده از آخرین تماس با AcceptChanges را برمی گرداند.WriteXML() یک طرح و داده XML را از DataSet می نویسد. این روش دارای اشکال مختلف بارگذاری شده است.WriteXMLSchema() ساختار DataSet را به عنوان یک طرحواره XML می نویسد. این روش دارای اشکال مختلف بارگذاری شده است.کلاس DataTableکلاس DataTable جداول موجود در پایگاه داده را نشان می دهد. دارای خواص مهم زیر است؛ اکثر این ویژگی ها به جز ویژگی PrimaryKey، ویژگی های فقط خواندنی هستند:توضیحات خواصChildRelations مجموعه روابط کودک را برمی گرداند.ستون ها مجموعه ستون ها را برمی گرداند.Constraints مجموعه محدودیت ها را برمی گرداند.DataSet DataSet والد را برمی گرداند.DefaultView نمای جدول را برمی گرداند.ParentRelations مجموعه ParentRelations را برمی گرداند.PrimaryKey آرایه ای از ستون ها را به عنوان کلید اصلی جدول می گیرد یا تنظیم می کند.Rows مجموعه Rows را برمی گرداند.جدول زیر چند روش مهم DataTa را نشان می دهدجدول زیر چند روش مهم کلاس DataRow را نشان می دهد:شرح روشهاAcceptChanges تمام تغییرات ایجاد شده از زمان فراخوانی این متد را می پذیرد.BeginEdit عملیات ویرایش را آغاز می کند.CancelEdit عملیات ویرایش را لغو می کند.Delete DataRow را حذف می کند.EndEdit عملیات ویرایش را پایان می دهد.GetChildRows ردیف های فرزند این ردیف را دریافت می کند.GetParentRow ردیف والد را دریافت می کند.GetParentRows ردیف های والد شی DataRow را دریافت می کند.RejectChanges همه تغییرات ایجاد شده از آخرین تماس با AcceptChanges را برمی گرداند.شیء DataAdapterشی DataAdapter به عنوان یک واسطه بین شی DataSet و پایگاه داده عمل می کند. این به Dataset کمک می‌کند تا داده‌هایی از چندین پایگاه داده یا سایر منابع داده را در خود داشته باشد.شی DataReaderشی DataReader جایگزینی برای ترکیب DataSet و DataAdapter است. این شی یک دسترسی اتصال گرا به رکوردهای داده در پایگاه داده را فراهم می کند. این اشیاء برای دسترسی فقط خواندنی مناسب هستند، مانند پر کردن لیست و سپس قطع اتصال.اشیاء DbCommand و DbConnectionشی DbConnection یک اتصال به منبع داده را نشان می دهد. اتصال را می توان بین اشیاء فرمان مختلف به اشتراک گذاشت.شی DbCommand نشان دهنده دستور یا یک رویه ذخیره شده است که از بازیابی یا دستکاری داده ها به پایگاه داده ارسال می شود.مثالتا کنون، ما از جداول و پایگاه داده های موجود در رایانه خود استفاده کرده ایم. در این مثال، یک جدول ایجاد می کنیم، ستون، ردیف و داده را به آن اضافه می کنیم و جدول را با استفاده از یک شی GridView نمایش می دهیم.کد فایل منبع به شرح زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="createdatabase._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:GridView ID="GridView1" runat="server"> </asp:GridView> </div> </form> </body></html>کد پشت فایل به صورت زیر است:namespace createdatabase{ public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataSet ds = CreateDataSet(); GridView1.DataSource = ds.Tables["Student"]; GridView1.DataBind(); } } private DataSet CreateDataSet() { //creating a DataSet object for tables DataSet dataset = new DataSet(); // creating the student table DataTable Students = CreateStudentTable(); dataset.Tables.Add(Students); return dataset; } private DataTable CreateStudentTable() { DataTable Students = new DataTable("Student"); // adding columns AddNewColumn(Students, "System.Int32", "StudentID"); AddNewColumn(Students, "System.String", "StudentName"); AddNewColumn(Students, "System.String", "StudentCity"); // adding rows AddNewRow(Students, 1, "M H Kabir", "Kolkata"); AddNewRow(Students, 1, "Shreya Sharma", "Delhi"); AddNewRow(Students, 1, "Rini Mukherjee", "Hyderabad"); AddNewRow(Students, 1, "Sunil Dubey", "Bikaner"); AddNewRow(Students, 1, "Rajat Mishra", "Patna"); return Students; } private void AddNewColumn(DataTable table, string columnType, string columnName) { DataColumn column = table.Columns.Add(columnName, Type.GetType(columnType)); } //adding data into the table private void AddNewRow(DataTable table, int id, string name, string city) { DataRow newrow = table.NewRow(); newrow["StudentID"] = id; newrow["StudentName"] = name; newrow["StudentCity"] = city; table.Rows.Add(newrow); } }}هنگام اجرای برنامه موارد زیر را رعایت کنید:برنامه ابتدا یک مجموعه داده ایجاد می کند و با استفاده از متد DataBind() کنترل GridView آن را با کنترل گرید نمای متصل می کند.متد Createdataset () یک تابع تعریف شده توسط کاربر است که یک شی DataSet جدید ایجاد می کند و سپس متد تعریف شده توسط کاربر دیگر CreateStudentTable() را برای ایجاد جدول و اضافه کردن آن به مجموعه جداول مجموعه داده فراخوانی می کند.متد CreateStudentTable() متدهای تعریف شده توسط کاربر AddNewColumn() و AddNewRow() را برای ایجاد ستون ها و ردیف های جدول و همچنین افزودن داده ها به سطرها فراخوانی می کند.هنگامی که صفحه اجرا می شود، ردیف های جدول را مطابق شکل برمی گرداند:ASP.NET - آپلود فایلASP.NET دارای دو کنترل است که به کاربران اجازه می دهد فایل ها را در وب سرور آپلود کنند. هنگامی که سرور داده های فایل ارسال شده را دریافت کرد، برنامه می تواند آن را ذخیره کند، بررسی کند یا نادیده بگیرد. کنترل‌های زیر اجازه آپلود فایل را می‌دهند:HtmlInputFile - یک کنترل سرور HTMLFileUpload - و کنترل وب ASP.NETهر دو کنترل اجازه آپلود فایل را می دهند، اما کنترل FileUpload به طور خودکار کدگذاری فرم را تنظیم می کند، در حالی که HtmlInputFile این کار را انجام نمی دهد.در این آموزش از کنترل FileUpload استفاده می کنیم. کنترل FileUpload به کاربر این امکان را می دهد که فایل مورد نظر را جستجو و انتخاب کند و یک دکمه مرور و یک جعبه متن برای وارد کردن نام فایل ارائه می دهد.هنگامی که کاربر با تایپ نام یا مرور نام فایل را در کادر متن وارد کرد، می‌توان از روش SaveAs کنترل FileUpload برای ذخیره فایل در دیسک فراخوانی کرد.سینتکس اصلی FileUpload به این صورت است:<asp:FileUpload ID= "Uploader" runat = "server" />کلاس FileUpload از کلاس WebControl مشتق شده است و تمام اعضای آن را به ارث می برد. جدای از آن ها، کلاس FileUpload دارای ویژگی های فقط خواندنی زیر است:توضیحات خواصFileBytes آرایه ای از بایت های موجود در فایلی که باید آپلود شود را برمی گرداند.FileContent شی جریان را که به فایلی که قرار است آپلود شود اشاره می کند، برمی گرداند.FileName نام فایلی که باید آپلود شود را برمی گرداند.HasFile مشخص می کند که آیا کنترل فایلی برای آپلود دارد یا خیر.PostedFile یک مرجع به فایل آپلود شده برمی گرداند.فایل ارسال شده در یک شی از نوع HttpPostedFile محصور شده است که می توان از طریق ویژگی PostedFile کلاس FileUpload به آن دسترسی داشت.کلاس HttpPostedFile دارای ویژگی های پرکاربرد زیر است:توضیحات خواصContentLength اندازه فایل آپلود شده را بر حسب بایت برمی گرداند.ContentType نوع MIME فایل آپلود شده را برمی گرداند.FileName نام کامل فایل را برمی‌گرداند.InputStream یک شی جریان را که به فایل آپلود شده اشاره می کند، برمی گرداند.مثالمثال زیر کنترل FileUpload و ویژگی های آن را نشان می دهد. فرم دارای یک کنترل FileUpload به همراه یک دکمه ذخیره و یک کنترل برچسب برای نمایش نام فایل، نوع فایل و طول فایل است.در نمای طراحی، فرم به صورت زیر است:کد فایل محتوا به صورت زیر است:<body> <form id="form1" runat="server"> <div> <h3> File Upload:</h3> <br /> <asp:FileUpload ID="FileUpload1" runat="server" /> <br /><br /> <asp:Button ID="btnsave" runat="server" ="btnsave_Click" Text="Save" style="width:85px" /> <br /><br /> <asp:Label ID="lblmessage" runat="server" /> </div> </form></body>کد پشت دکمه ذخیره به صورت زیر است:protected void btnsave_Click(object sender, EventArgs e){ StringBuilder sb = new StringBuilder(); if (FileUpload1.HasFile) { try { sb.AppendFormat(" Uploading file: {0}", FileUpload1.FileName); //saving the file FileUpload1.SaveAs("<c:\\SaveDirectory>" + FileUpload1.FileName); //Showing the file information sb.AppendFormat("<br/> Save As: {0}", FileUpload1.PostedFile.FileName); sb.AppendFormat("<br/> File type: {0}", FileUpload1.PostedFile.ContentType); sb.AppendFormat("<br/> File length: {0}", FileUpload1.PostedFile.ContentLength); sb.AppendFormat("<br/> File name: {0}", FileUpload1.PostedFile.FileName); } catch (Exception ex) { sb.Append("<br/> Error <br/>"); sb.AppendFormat("Unable to save file <br/> {0}", ex.Message); } } else { lblmessage.Text = sb.ToString(); }}به موارد زیر توجه کنید:کلاس StringBuilder از فضای نام System.IO مشتق شده است، بنابراین باید گنجانده شود.بلوک‌های try and catch برای گرفتن خطاها استفاده می‌شوند و پیام خطا را نمایش می‌دهند.ASP.NET - Ad Rotatorکنترل AdRotator به طور تصادفی گرافیک بنر را از لیستی که در یک فایل برنامه XML خارجی مشخص شده است، انتخاب می کند. این فایل برنامه XML خارجی، فایل تبلیغاتی نامیده می شود.کنترل AdRotator به شما این امکان را می دهد که فایل تبلیغاتی و نوع پنجره ای را که پیوند باید دنبال کند به ترتیب در ویژگی AdvertisementFile و Target مشخص کنید.دستور اصلی اضافه کردن AdRotator به شرح زیر است:<asp:AdRotator runat = "server" AdvertisementFile = "adfile.xml" Target = "_blank" />قبل از پرداختن به جزئیات کنترل AdRotator و ویژگی های آن، اجازه دهید به ساخت فایل تبلیغاتی نگاه کنیم.فایل تبلیغاتیفایل تبلیغاتی یک فایل XML است که حاوی اطلاعات تبلیغاتی است که قرار است نمایش داده شود.زبان نشانه گذاری توسعه پذیر (XML) یک استاندارد W3C برای نشانه گذاری اسناد متنی است. این یک زبان نشانه گذاری مبتنی بر متن است که به شما امکان می دهد داده ها را در قالبی ساختاریافته با استفاده از برچسب های معنی دار ذخیره کنید. اصطلاح "توسعه پذیر" به این معناست که می توانید توانایی خود را برای توصیف یک سند با تعریف برچسب های معنی دار برای برنامه گسترش دهید.XML به خودی خود یک زبان مانند HTML نیست، بلکه مجموعه ای از قوانین برای ایجاد زبان های نشانه گذاری جدید است. این یک زبان متا نشانه گذاری است. این به توسعه دهندگان اجازه می دهد تا مجموعه های برچسب سفارشی را برای استفاده های خاص ایجاد کنند. اطلاعات را ساختار، ذخیره و انتقال می دهد.نمونه ای از فایل XML در زیر آمده است:<BOOK> <NAME> Learn XML </NAME> <AUTHOR> Samuel Peterson </AUTHOR> <PUBLISHER> NSS Publications </PUBLISHER> <PRICE> $30.00</PRICE></BOOK>مانند همه فایل‌های XML، فایل تبلیغاتی باید یک فایل متنی ساختاریافته با برچسب‌های مشخصی باشد که داده‌ها را مشخص می‌کند. عناصر XML استاندارد زیر معمولاً در فایل تبلیغاتی استفاده می شوند:توضیحات عنصرAdvertisements شامل فایل آگهی می شود.تبلیغ آگهی جداگانه را مشخص می کند.ImageUrl مسیر تصویری که نمایش داده می شود.NavigateUrl پیوندی که وقتی کاربر روی تبلیغ کلیک می کند دنبال می شود.AlternateText متنی که در صورت عدم نمایش به جای تصویر نمایش داده می شود.کلمه کلیدی کلمه کلیدی شناسایی گروهی از تبلیغات. این برای فیلتر کردن استفاده می شود.Impressions عددی که نشان می‌دهد هر چند وقت یکبار یک آگهی نمایش داده می‌شود.ارتفاع ارتفاع تصویری که قرار است نمایش داده شود.عرض تصویری که قرار است نمایش داده شود.جدای از این تگ ها، تگ های گمرکی با ویژگی های سفارشی نیز می توانند گنجانده شوند. کد زیر یک فایل تبلیغاتی ads.xml را نشان می دهد:<Advertisements> <Ad> <ImageUrl>rose1.jpg</ImageUrl> <NavigateUrl>http://www.1800flowers.com</NavigateUrl> <AlternateText> Order flowers, roses, gifts and more </AlternateText> <Impressions>20</Impressions> <Keyword>flowers</Keyword> </Ad> <Ad> <ImageUrl>rose2.jpg</ImageUrl> <NavigateUrl>http://www.babybouquets.com.au</NavigateUrl> <AlternateText>Order roses and flowers</AlternateText> <Impressions>20</Impressions> <Keyword>gifts</Keyword> </Ad> <Ad> <ImageUrl>rose3.jpg</ImageUrl> <NavigateUrl>http://www.flowers2moscow.com</NavigateUrl> <AlternateText>Send flowers to Russia</AlternateText> <Impressions>20</Impressions> <Keyword>russia</Keyword> </Ad> <Ad> <ImageUrl>rose4.jpg</ImageUrl> <NavigateUrl>http://www.edibleblooms.com</NavigateUrl> <AlternateText>Edible Blooms</AlternateText> <Impressions>20</Impressions> <Keyword>gifts</Keyword> </Ad></Advertisements>ویژگی ها و رویدادهای کلاس AdRotatorکلاس AdRotator از کلاس WebControl مشتق شده و خواص آن را به ارث می برد. جدای از آن ها، کلاس AdRotator دارای ویژگی های زیر است:توضیحات خواصAdvertisementFile مسیر فایل آگهی.AlternateTextFeild نام عنصر فیلدی که در آن متن جایگزین ارائه شده است. مقدار پیش فرض AlternateText است.DataMember نام لیست خاصی از داده هایی است که در صورت عدم استفاده از فایل تبلیغاتی باید قید شوند.DataSource Control از جایی که داده ها را بازیابی می کند.شناسه DataSourceID کنترل از جایی که داده ها را بازیابی می کند.فونت ویژگی های فونت مرتبط با کنترل بنر تبلیغاتی را مشخص می کند.ImageUrlField نام عنصر فیلدی که آدرس اینترنتی تصویر در آن ارائه شده است. مقدار پیش فرض ImageUrl است.KeywordFilter فقط برای نمایش تبلیغات مبتنی بر کلمات کلیدی.NavigateUrlField نام عنصر فیلدی که URL برای پیمایش در آن ارائه می شود. مقدار پیش فرض NavigateUrl است.Target پنجره یا قاب مرورگر که محتوای صفحه پیوند شده را نمایش می دهد.UniqueID شناسه منحصر به فرد و واجد شرایط سلسله مراتبی را برای کنترل AdRotator به دست می آورد.رویدادهای مهم کلاس AdRotator در زیر آمده است:شرح رویدادهاAdCreated پس از ایجاد کنترل، یک بار در هر سفر رفت و برگشت به سرور افزایش می یابد، اما قبل از ارائه صفحهDataBinding زمانی رخ می دهد که کنترل سرور به منبع داده متصل شود.DataBound پس از اتصال کنترل سرور به منبع داده رخ می دهد.Disposed زمانی رخ می دهد که یک کنترل سرور از حافظه آزاد شود، که آخرین مرحله از چرخه حیات کنترل سرور در هنگام درخواست صفحه ASP.NET است.Init زمانی اتفاق می افتد که کنترل سرور مقدار دهی اولیه شود، که اولین گام در چرخه حیات آن است.بارگذاری زمانی رخ می دهد که کنترل سرور در شیء Page بارگذاری شود.PreRender بعد از بارگیری شیء Control اما قبل از رندر رخ می دهد.Unload زمانی رخ می دهد که کنترل سرور از حافظه تخلیه شود.کار با AdRotator Controlیک صفحه وب جدید ایجاد کنید و یک کنترل AdRotator روی آن قرار دهید.<form id="form1" runat="server"> <div> <asp:AdRotator ID="AdRotator1" runat="server" AdvertisementFile ="~/ads.xml" onadcreated="AdRotator1_AdCreated" /> </div></form>فایل ads.xml و فایل های تصویری باید در دایرکتوری ریشه وب سایت قرار گیرند.سعی کنید برنامه فوق را اجرا کنید و توجه داشته باشید که با هر بار بارگذاری مجدد صفحه، تبلیغ تغییر می کند.ASP.NET - تقویمکنترل تقویم یک کنترل وب غنی از عملکرد است که قابلیت های زیر را ارائه می دهد:نمایش یک ماه در یک زمانانتخاب یک روز، یک هفته یا یک ماهانتخاب محدوده ای از روزهاحرکت از ماه به ماهکنترل نمایش روزها به صورت برنامه ایدستور اصلی یک کنترل تقویم به شرح زیر است:<asp:Calender ID = "Calendar1" runat = "server"></asp:Calender>ویژگی ها و رویدادهای کنترل تقویمکنترل تقویم دارای ویژگی ها و رویدادهای بسیاری است که با استفاده از آنها می توانید اعمال و نمایش کنترل را شخصی سازی کنید. جدول زیر برخی از ویژگی های مهم کنترل تقویم را ارائه می دهد:توضیحات خواصCaption زیرنویس را برای کنترل تقویم دریافت یا تنظیم می کند.CaptionAlign تراز زیرنویس را دریافت یا تنظیم می کند.CellPadding تعداد فاصله های بین داده ها و حاشیه سلول را دریافت یا تنظیم می کند.CellSpacing فضای بین سلول ها را می گیرد یا تنظیم می کند.DayHeaderStyle ویژگی های سبک را برای بخشی که روز هفته را نمایش می دهد دریافت می کند.DayNameFormat قالب روزهای هفته را دریافت یا تنظیم می کند.DayStyle ویژگی های سبک را برای روزهای ماه نمایش داده شده دریافت می کند.FirstDayOfWeek روز هفته را برای نمایش در ستون اول دریافت یا تنظیم می کند.NextMonthText متن را برای کنترل پیمایش ماه آینده دریافت یا تنظیم می کند. مقدار پیش فرض > است.NextPrevFormat فرمت کنترل ناوبری ماه بعدی و قبلی را دریافت یا تنظیم می کند.OtherMonthDayStyle ویژگی های سبک را برای روزهایی در کنترل تقویم که در ماه نمایش داده شده نیستند، دریافت می کند.PrevMonthText متن را برای کنترل پیمایش ماه قبل دریافت یا تنظیم می کند. مقدار پیش فرض < است.SelectedDate تاریخ انتخاب شده را می گیرد یا تنظیم می کند.SelectedDates مجموعه ای از اشیاء DateTime را دریافت می کند که تاریخ های انتخاب شده را نشان می دهد.SelectedDayStyle ویژگی های سبک را برای تاریخ های انتخابی دریافت می کند.SelectionMode حالت انتخابی را دریافت یا تنظیم می کند که مشخص می کند کاربر می تواند یک روز، یک هفته یا یک ماه کامل را انتخاب کند.SelectMonthText متن عنصر انتخاب ماه را در ستون انتخابگر دریافت یا تنظیم می کند.SelectorStyle ویژگی های سبک را برای ستون انتخابگر هفته و ماه دریافت می کند.SelectWeekText متن نمایش داده شده برای عنصر انتخاب هفته را در ستون انتخابگر دریافت یا تنظیم می کند.ShowDayHeader مقداری را دریافت یا تنظیم می کند که نشان می دهد عنوان روزهای هفته نمایش داده می شود یا خیر.ShowGridLines مقداری را می گیرد یا تنظیم می کند که نشان می دهد خطوط شبکه نمایش داده می شوند یا خیر.ShowNextPrevMonth مقداری را می گیرد یا تنظیم می کند که نشان می دهد عناصر پیمایش ماه بعدی و قبل در قسمت عنوان نشان داده شده اند یا خیر.ShowTitle مقداری را می گیرد یا تنظیم می کند که نشان می دهد بخش عنوان نمایش داده می شود یا خیر.TitleFormat قالب قسمت عنوان را دریافت یا تنظیم می کند.Titlestyle ویژگی های سبک عنوان عنوان را برای کنترل Calendar دریافت کنید.TodayDayStyle ویژگی های سبک را برای تاریخ امروز در کنترل تقویم دریافت می کند.TodaysDate مقدار تاریخ امروز را دریافت یا تنظیم می کند.UseAccessibleHeader مقداری را می‌گیرد یا تنظیم می‌کند که نشان می‌دهد به جای عنصر HTML داده جدول <td>، عنصر HTML <th> را برای سرصفحه‌های روز ارائه می‌کند یا خیر.VisibleDate تاریخی را می گیرد یا تعیین می کند که ماه نمایش را مشخص می کند.WeekendDayStyle ویژگی های سبک را برای تاریخ های آخر هفته در کنترل تقویم دریافت می کند.کنترل تقویم دارای سه رویداد مهم زیر است که به توسعه دهندگان اجازه می دهد تا کنترل تقویم را برنامه ریزی کنند. آن ها هستند:شرح رویدادهاSelectionChanged هنگامی که یک روز، یک هفته یا یک ماه کامل انتخاب می شود، افزایش می یابد.DayRender هنگامی که هر سلول داده کنترل تقویم ارائه می شود، افزایش می یابد.VisibleMonthChanged هنگامی که کاربر یک ماه تغییر می کند، افزایش می یابد.کار با کنترل تقویمقرار دادن یک کنترل تقویم بدون هیچ کدی در پشت فایل یک تقویم قابل اجرا برای یک سایت فراهم می کند که ماه ها و روزهای سال را نشان می دهد. همچنین امکان پیمایش به ماه های بعدی و قبلی را فراهم می کند.کنترل‌های تقویم به کاربران اجازه می‌دهد یک روز، یک هفته یا یک ماه کامل را انتخاب کنند. این کار با استفاده از ویژگی SelectionMode انجام می شود. این ویژگی دارای مقادیر زیر است:توضیحات خواصروز برای انتخاب یک روز واحد.DayWeek برای انتخاب یک روز یا یک هفته کامل.DayWeekMonth برای انتخاب یک روز، یک هفته یا یک ماه کامل.هیچ چیزی نمی توان انتخاب کرد.نحو برای انتخاب روز:<asp:Calender ID = "Calendar1" runat = "server" SelectionMode="DayWeekMonth"></asp:Calender>هنگامی که حالت انتخاب روی مقدار DayWeekMonth تنظیم می شود، یک ستون اضافی با نماد > برای انتخاب هفته و یک نماد >> در سمت چپ نام روزها برای انتخاب ماه ظاهر می شود.مثالمثال زیر انتخاب تاریخ را نشان می دهد و تاریخ را در یک برچسب نمایش می دهد:کد فایل محتوا به شرح زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="calendardemo._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> Your Birthday:</h3> <asp:Calendar ID="Calendar1" runat="server SelectionMode="DayWeekMonth" onselectionchanged="Calendar1_SelectionChanged"> </asp:Calendar> </div> <p>Todays date is: <asp:Label ID="lblday" runat="server"></asp:Label> </p> <p>Your Birday is: <asp:Label ID="lblbday" runat="server"></asp:Label> </p> </form> </body></html>کنترل کننده رویداد برای رویداد SelectionChanged:protected void Calendar1_SelectionChanged(object sender, EventArgs e){ lblday.Text = Calendar1.TodaysDate.ToShortDateString(); lblbday.Text = Calendar1.SelectedDate.ToShortDateString();}هنگامی که فایل اجرا می شود، باید خروجی زیر را تولید کند:ASP.NET - چند نماکنترل های MultiView و View به شما این امکان را می دهند که محتوای یک صفحه را به گروه های مختلف تقسیم کنید و هر بار فقط یک گروه را نمایش دهید. هر کنترل View یک گروه از محتوا را مدیریت می کند و همه کنترل های View در یک کنترل MultiView با هم نگه داشته می شوند.کنترل MultiView مسئول نمایش یک کنترل View در یک زمان است. نمای نمایش داده شده نمای فعال نامیده می شود.سینتکس کنترل MultiView به صورت زیر است:<asp:MultView ID= "MultiView1" runat= "server"></asp:MultiView>نحو کنترل View به صورت زیر است:<asp:View ID= "View1" runat= "server"></asp:View>با این حال، کنترل View به تنهایی نمی تواند وجود داشته باشد. اگر بخواهید به صورت مستقل از آن استفاده کنید، با خطا مواجه می شود. همیشه با یک کنترل Multiview به عنوان زیر استفاده می شود:<asp:MultView ID= "MultiView1" runat= "server"> <asp:View ID= "View1" runat= "server"> </asp:View></asp:MultiView>ویژگی های کنترل های View و MultiViewهر دو کنترل View و MultiView از کلاس Control مشتق شده اند و تمام ویژگی ها، متدها و رویدادهای آن را به ارث می برند. مهمترین ویژگی کنترل View، ویژگی Visible از نوع Boolean است که میزان دید یک view را تعیین می کند.کنترل MultiView دارای ویژگی های مهم زیر است:توضیحات خواصمجموعه کنترل‌های View را در MultiView مشاهده می‌کند.ActiveViewIndex یک شاخص مبتنی بر صفر که نمای فعال را نشان می دهد. اگر هیچ نمایی فعال نباشد، ایندکس -1 است.ویژگی CommandName کنترل دکمه مرتبط با پیمایش کنترل MultiView با برخی از فیلدهای مرتبط کنترل MultiView مرتبط است.به عنوان مثال، اگر یک کنترل دکمه با مقدار CommandName به عنوان NextView با پیمایش مولتی ویو مرتبط باشد، با کلیک روی دکمه به طور خودکار به نمای بعدی هدایت می شود.جدول زیر نام دستورات پیش فرض ویژگی های بالا را نشان می دهد:توضیحات خواصNextViewCommandName NextViewPreviousViewCommandName PrevViewSwitchViewByIDCommandName SwitchViewByIDSwitchViewByIndexCommandName SwitchViewByIndexروش های مهم کنترل مولتی ویو عبارتند از:شرح روشهاSetActiveview نمای فعال را تنظیم می کندGetActiveview نمای فعال را بازیابی می کندهر بار که یک نما تغییر می کند، صفحه به سرور ارسال می شود و تعدادی رویداد مطرح می شود. برخی از رویدادهای مهم عبارتند از:شرح رویدادهاActiveViewChanged هنگام تغییر نما افزایش می یابدRaised توسط نمای فعال را فعال کنیدRaised توسط نمای غیرفعال را غیرفعال کنیدجدای از خواص، متدها و رویدادهای ذکر شده در بالا، کنترل multiview اعضای کلاس کنترل و شی را به ارث می برد.مثالصفحه نمونه سه نما دارد. هر نما دارای دو دکمه برای پیمایش در نماها است.کد فایل محتوا به شرح زیر است:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="multiviewdemo._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> <h2>MultiView and View Controls</h2> <asp:DropDownList ID="DropDownList1" runat="server" onselectedindexchanged="DropDownList1_SelectedIndexChanged"> </asp:DropDownList> <hr /> <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="2" onactiveviewchanged="MultiView1_ActiveViewChanged" > <asp:View ID="View1" runat="server"> <h3>This is view 1</h3> <br /> <asp:Button CommandName="NextView" ID="btnnext1" runat="server" Text = "Go To Next" /> <asp:Button CommandArgument="View3" CommandName="SwitchViewByID" ID="btnlast" runat="server" Text ="Go To Last" /> </asp:View> <asp:View ID="View2" runat="server"> <h3>This is view 2</h3> <asp:Button CommandName="NextView" ID="btnnext2" runat="server" Text = "Go To Next" /> <asp:Button CommandName="PrevView" ID="btnprevious2" runat="server" Text = "Go To Previous View" /> </asp:View> <asp:View ID="View3" runat="server"> <h3> This is view 3</h3> <br /> <asp:Calendar ID="Calender1" runat="server"></asp:Calendar> <br /> <asp:Button CommandArgument="0" CommandName="SwitchViewByIndex" ID="btnfirst" runat="server" Text = "Go To Next" /> <asp:Button CommandName="PrevView" ID="btnprevious" runat="server" Text = "Go To Previous View" /> </asp:View> </asp:MultiView> </div> </form> </body></html>موارد زیر را رعایت کنید:MultiView.ActiveViewIndex تعیین می کند که کدام نما نشان داده شود. این تنها نمای ارائه شده در صفحه است. مقدار پیش فرض برای ActiveViewIndex -1 است، زمانی که هیچ نمایی نشان داده نمی شود. از آنجایی که ActiveViewIndex در مثال به صورت 2 تعریف شده است، نمای سوم را در هنگام اجرا نشان می دهد.ASP.NET - کنترل پنلکنترل پنل به عنوان محفظه ای برای سایر کنترل های صفحه کار می کند. ظاهر و دید کنترل های موجود را کنترل می کند. همچنین اجازه می دهد تا کنترل ها را به صورت برنامه ای تولید کنید.سینتکس اصلی کنترل پنل به شرح زیر است:<asp:Panel ID= "Panel1" runat = "server"></asp:Panel>کنترل پنل از کلاس WebControl مشتق شده است. از این رو تمام ویژگی ها، روش ها و رویدادهای یکسان را به ارث می برد. هیچ روش یا رویدادی برای خود ندارد. با این حال ویژگی های زیر را دارد:توضیحات خواصURL BackImageUrl تصویر پس زمینه پانل.DefaultButton شناسه دکمه پیش فرض موجود در کنترل پنل را دریافت یا تنظیم می کند.جهت جهت متن در پانل.GroupingText گروه بندی متن به عنوان یک فیلد را می دهد.HorizontalAlign تراز افقی محتوا در پانل.ScrollBars نمایان بودن و مکان اسکرول‌بارها را در پانل مشخص می‌کند.Wrap بسته بندی متن را می دهد.کار با کنترل پنلاجازه دهید با یک صفحه اسکرول ساده با ارتفاع و عرض خاص و سبک حاشیه شروع کنیم. ویژگی ScrollBars روی هر دو نوار اسکرول تنظیم شده است، بنابراین هر دو نوار اسکرول ارائه می شوند.فایل منبع دارای کد زیر برای تگ پنل است:<asp:Panel ID="Panel1" runat="server" BorderColor="#990000" BorderStyle="Solid" Borderstyle="width:1px" Height="116px" ScrollBars="Both" style="width:278px"> This is a scrollable panel. <br /> <br /> <asp:Button ID="btnpanel" runat="server" Text="Button" style="width:82px" /></asp:Panel>پانل به صورت زیر ارائه می شود:مثالمثال زیر تولید محتوای پویا را نشان می دهد. کاربر تعداد کنترل‌های برچسب و جعبه‌های متنی را برای تولید روی پانل ارائه می‌کند. کنترل ها به صورت برنامه نویسی تولید می شوند.ویژگی های پنل را با استفاده از پنجره خواص تغییر دهید. وقتی کنترلی را در نمای طراحی انتخاب می‌کنید، پنجره خصوصیات ویژگی‌های آن کنترل خاص را نشان می‌دهد و به شما امکان می‌دهد بدون تایپ تغییراتی ایجاد کنید.فایل منبع برای مثال به شرح زیر است:<form id="form1" runat="server"> <div> <asp:Panel ID="pnldynamic" runat="server" BorderColor="#990000" BorderStyle="Solid" Borderstyle="width:1px" Height="150px" ScrollBars="Auto" style="width:60%" BackColor="#CCCCFF" Font-Names="Courier" HorizontalAlign="Center"> This panel shows dynamic control generation: <br /> <br /> </asp:Panel> </div> <table style="width: 51%;"> <tr> <td class="style2">No of Labels:</td> <td class="style1"> <asp:DropDownList ID="ddllabels" runat="server"> <asp:ListItem>0</asp:ListItem> <asp:ListItem>1</asp:ListItem> <asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem>4</asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td class="style2"> </td> <td class="style1"> </td> </tr> <tr> <td class="style2">No of Text Boxes :</td> <td class="style1"> <asp:DropDownList ID="ddltextbox" runat="server"> <asp:ListItem>0</asp:ListItem> <asp:ListItem Value="1"></asp:ListItem> <asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem Value="4"></asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td class="style2"> </td> <td class="style1"> </td> </tr> <tr> <td class="style2"> <asp:CheckBox ID="chkvisible" runat="server" Text="Make the Panel Visible" /> </td> <td class="style1"> <asp:Button ID="btnrefresh" runat="server" Text="Refresh Panel" style="width:129px" /> </td> </tr> </table></form>کد پشت رویداد Page_Load مسئول تولید کنترل ها به صورت پویا است:public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { //make the panel visible pnldynamic.Visible = chkvisible.Checked; //generating the lable controls: int n = Int32.Parse(ddllabels.SelectedItem.Value); for (int i = 1; i <= n; i++) { Label lbl = new Label(); lbl.Text = "Label" + (i).ToString(); pnldynamic.Controls.Add(lbl); pnldynamic.Controls.Add(new LiteralControl("<br />")); } //generating the text box controls: int m = Int32.Parse(ddltextbox.SelectedItem.Value); for (int i = 1; i <= m; i++) { TextBox txt = new TextBox(); txt.Text = "Text Box" + (i).ToString(); pnldynamic.Controls.Add(txt); pnldynamic.Controls.Add(new LiteralControl("<br />")); } }}هنگام اجرا، پنل به صورت زیر نمایش داده می شود:ASP.NET - Ajax ControlAJAX مخفف Asynchronous JavaScript و XML است. این یک فناوری متقابل پلتفرم است که زمان پاسخگویی را سرعت می بخشد. کنترل های سرور AJAX اسکریپت را به صفحه اضافه می کند که توسط مرورگر اجرا و پردازش می شود.با این حال، مانند سایر کنترل‌های سرور ASP.NET، این کنترل‌های سرور AJAX نیز می‌توانند متدها و کنترل‌کننده‌های رویداد مرتبط با خود داشته باشند که در سمت سرور پردازش می‌شوند.جعبه ابزار کنترل در Visual Studio IDE شامل گروهی از کنترل ها به نام "افزونه های AJAX" است.کنترل ScriptManagerکنترل ScriptManager مهمترین کنترل است و باید در صفحه وجود داشته باشد تا سایر کنترل ها کار کنند.این دستور اولیه را دارد:<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>اگر یک «سایت فعال Ajax» ایجاد کنید یا یک «فرم وب AJAX» را از کادر محاوره‌ای «افزودن آیتم» اضافه کنید، فرم وب به طور خودکار شامل کنترل مدیر اسکریپت است. کنترل ScriptManager از اسکریپت سمت سرویس گیرنده برای تمام کنترل های سمت سرور مراقبت می کند.کنترل UpdatePanelکنترل UpdatePanel یک کنترل کانتینری است و از کلاس Control مشتق شده است. به عنوان یک محفظه برای کنترل های کودک درون آن عمل می کند و رابط خاص خود را ندارد. هنگامی که یک کنترل در داخل آن یک پست را بازگرداند، UpdatePanel برای شروع پست به صورت ناهمزمان و به روز رسانی فقط آن بخش از صفحه دخالت می کند.به عنوان مثال، اگر یک دکمه در داخل پنل آپدیت باشد و روی آن کلیک شود، فقط کنترل های داخل پنل آپدیت تحت تأثیر قرار می گیرند، کنترل های سایر قسمت های صفحه تحت تأثیر قرار نمی گیرند. به این حالت قسمتی از پست برگشتی یا پست ناهمزمان برگشت می گویند.مثالیک فرم وب AJAX را در برنامه خود اضافه کنید. به طور پیش فرض شامل کنترل مدیر اسکریپت است. یک پنل به روز رسانی وارد کنید. یک کنترل دکمه را به همراه یک کنترل برچسب در کنترل پنل به روز رسانی قرار دهید. مجموعه دیگری از دکمه و برچسب را در خارج از پانل قرار دهید.نمای طراحی به صورت زیر است:فایل منبع به شرح زیر است:<div> <asp:ScriptManager ID="ScriptManager1" runat="server" /> </div> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Button ID="btnpartial" runat="server" ="btnpartial_Click" Text="Partial PostBack"/> <br /> <br /> <asp:Label ID="lblpartial" runat="server"></asp:Label> </ContentTemplate> </asp:UpdatePanel> <p> </p> <p>Outside the Update Panel</p> <p> <asp:Button ID="btntotal" runat="server" ="btntotal_Click" Text="Total PostBack" /> </p> <asp:Label ID="lbltotal" runat="server"></asp:Label></form>هر دو کنترل دکمه کد یکسانی برای کنترل کننده رویداد دارند:string time = DateTime.Now.ToLongTimeString();lblpartial.Text = "Showing time from panel" + time;lbltotal.Text = "Showing time from outside" + time;توجه داشته باشید که وقتی صفحه اجرا می‌شود، اگر روی دکمه بازگشت کل پست کلیک شود، زمان در هر دو برچسب به‌روزرسانی می‌شود، اما اگر روی دکمه برگشت پست جزئی کلیک شود، فقط برچسب را در پانل به‌روزرسانی به‌روزرسانی می‌کند.یک صفحه می‌تواند حاوی چندین پانل به‌روزرسانی باشد که هر پانل شامل کنترل‌های دیگری مانند شبکه است و بخش‌های مختلفی از داده‌ها را نمایش می‌دهد.هنگامی که یک پست کلی رخ می دهد، محتوای پانل به روز رسانی به طور پیش فرض به روز می شود. این حالت پیش فرض را می توان با تغییر ویژگی UpdateMode کنترل تغییر داد. اجازه دهید ویژگی های دیگر پنل به روز رسانی را بررسی کنیم.ویژگی های کنترل UpdatePanelجدول زیر ویژگی های کنترل پنل به روز رسانی را نشان می دهد:توضیحات خواصChildrenAsTriggers این ویژگی نشان می‌دهد که آیا پشتیبان‌های پست از کنترل‌های فرزند می‌آیند، که باعث می‌شود پانل به‌روزرسانی به‌روزرسانی شود.ContentTemplate این قالب محتوا است و آنچه را که در پانل به روز رسانی نمایش داده می شود، مشخص می کند.ContentTemplateContainer شی ظرف قالب به صورت پویا ایجاد شده را بازیابی می کند و برای افزودن کنترل های فرزند به صورت برنامه ای استفاده می شود.IsInPartialRendering نشان می دهد که آیا پانل به عنوان بخشی از پست برگشتی جزئی به روز می شود یا خیر.RenderMode حالت های رندر را نشان می دهد. حالت های موجود Block و Inline هستند.UpdateMode با تعیین برخی شرایط حالت رندر را دریافت یا تنظیم می کند.Triggers اشیاء ماشه مجموعه را تعریف می کند که هر کدام مربوط به یک رویداد است که باعث می شود پانل به طور خودکار بازخوانی شود.روش های کنترل UpdatePanelجدول زیر روش های کنترل پنل به روز رسانی را نشان می دهد:شرح روشهاCreateContentTemplateContainer یک شی Control ایجاد می کند که به عنوان یک محفظه برای کنترل های فرزند عمل می کند که محتوای کنترل UpdatePanel را تعریف می کند.CreateControlCollection مجموعه ای از تمام کنترل های موجود در کنترل UpdatePanel را برمی گرداند.Initialize مجموعه ماشه کنترل UpdatePanel را در صورت فعال بودن رندر بخشی از صفحه، مقداردهی اولیه می کند.به روز رسانی باعث بروز رسانی محتوای کنترل UpdatePanel می شود.رفتار پانل به روز رسانی به مقادیر ویژگی UpdateMode و ویژگی ChildrenAsTriggers بستگی دارد.UpdateMode ChildrenAsTriggers Effectپارامترهای همیشه نادرست غیر قانونی.Always True UpdatePanel اگر کل صفحه بازخوانی شود یا کنترل فرزند روی آن پست ارسال کند، بازخوانی می شود.Conditional False UpdatePanel اگر کل صفحه بازخوانی شود یا یک کنترل فعال خارج از آن بازخوانی را آغاز کند، بازخوانی می شود.اگر تمام صفحه بازخوانی شود یا کنترل فرزند روی آن پست ارسال کند یا یک کنترل فعال خارج از آن بازخوانی را آغاز کند، Conditional True UpdatePanel بازخوانی می شود.کنترل پیشرفت به روز رسانیکنترل UpdateProgress نوعی بازخورد در مرورگر ارائه می‌کند، در حالی که یک یا چند کنترل پانل به‌روزرسانی در حال به‌روزرسانی هستند. به عنوان مثال، در حالی که کاربر هنگام انجام برخی از کارهای پایگاه داده گرا وارد سیستم می شود یا منتظر پاسخ سرور است.این یک تصدیق بصری مانند "در حال بارگیری صفحه..." را ارائه می دهد، که نشان می دهد کار در حال انجام است.سینتکس کنترل UpdateProgress به صورت زیر است:<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="true" AssociatedUpdatePanelID="UpdatePanel1" > <ProgressTemplate> Loading... </ProgressTemplate></asp:UpdateProgress>قطعه بالا یک پیام ساده را در تگ ProgressTemplate نشان می دهد. با این حال، این می تواند یک تصویر یا سایر کنترل های مرتبط باشد. کنترل UpdateProgress برای هر پست بک ناهمزمان نمایش داده می شود مگر اینکه با استفاده از ویژگی AssociatedUpdatePanelID به یک پانل به روز رسانی اختصاص داده شود.ویژگی های UpdateProgress Controlجدول زیر ویژگی های کنترل پیشرفت به روز رسانی را نشان می دهد:توضیحات خواصAssociatedUpdatePanelID شناسه پانل به‌روزرسانی را که این کنترل با آن مرتبط است، دریافت و تنظیم می‌کند.ویژگی ها ویژگی های شیوه نامه آبشاری (CSS) کنترل UpdateProgress را دریافت یا تنظیم می کند.DisplayAfter دریافت می کند و زمان را بر حسب میلی ثانیه تنظیم می کند که پس از آن الگوی پیشرفت نمایش داده می شود. پیش فرض 500 است.DynamicLayout نشان می دهد که آیا الگوی پیشرفت به صورت پویا ارائه شده است یا خیر.ProgressTemplate الگوی نمایش داده شده در طول یک پست ناهمزمان را نشان می دهد که زمان بیشتری نسبت به زمان DisplayAfter طول می کشد.روش های کنترل پیشرفت به روز رسانیجدول زیر روش های کنترل پیشرفت به روز رسانی را نشان می دهد:شرح روشهاGetScriptDescriptors فهرستی از مؤلفه‌ها، رفتارها و کنترل‌های کلاینت را که برای عملکرد سرویس گیرنده کنترل UpdateProgress لازم است، برمی‌گرداند.GetScriptReferences فهرستی از وابستگی‌های کتابخانه اسکریپت سرویس گیرنده را برای کنترل UpdateProgress برمی‌گرداند.کنترل تایمرکنترل تایمر برای بازگرداندن خودکار پست استفاده می شود. این کار به دو صورت قابل انجام است:(1) تنظیم ویژگی Triggers کنترل UpdatePanel:<Triggers> <asp:AsyncPostBackTrigger ControlID="btnpanel2" EventName="Click" /></Triggers>(2) قرار دادن یک کنترل تایمر به طور مستقیم در داخل UpdatePanel تا به عنوان یک ماشه کنترل کودک عمل کند. یک تایمر منفرد می تواند محرک چندین UpdatePanel باشد.<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> <ContentTemplate> <asp:Timer ID="Timer1" runat="server" Interval="1000"> </asp:Timer> <asp:Label ID="Label1" runat="server" Height="101px" style="width:304px" > </asp:Label> </ContentTemplate></asp:UpdatePanel>ASP.NET - منابع دادهیک کنترل منبع داده با کنترل های محدود به داده تعامل دارد و فرآیندهای پیچیده اتصال داده را پنهان می کند. اینها ابزارهایی هستند که داده ها را در اختیار کنترل های داده محدود می کنند و از اجرای عملیاتی مانند درج، حذف، مرتب سازی و به روز رسانی پشتیبانی می کنند.هر کنترل منبع داده یک پایگاه داده مرتبط با ارائه‌دهنده داده، اسناد XML یا کلاس‌های سفارشی را می‌پیچد و به موارد زیر کمک می‌کند:مدیریت اتصالانتخاب داده هامدیریت جنبه های ارائه مانند صفحه بندی، کش کردن و غیره.دستکاری داده هابسیاری از کنترل‌های منبع داده در ASP.NET برای دسترسی به داده‌ها از SQL Server، از سرورهای ODBC یا OLE DB، از فایل‌های XML و از اشیاء تجاری موجود است.بر اساس نوع داده، این کنترل ها را می توان به دو دسته تقسیم کرد:کنترل های منبع داده سلسله مراتبیکنترل های منبع داده مبتنی بر جدولکنترل های منبع داده مورد استفاده برای داده های سلسله مراتبی عبارتند از:XMLDataSource - امکان اتصال به فایل ها و رشته های XML با یا بدون اطلاعات طرحواره را فراهم می کند.SiteMapDataSource - امکان اتصال به ارائه دهنده ای که اطلاعات نقشه سایت را ارائه می دهد را می دهد.کنترل های منبع داده مورد استفاده برای داده های جدولی عبارتند از:کنترل منبع داده توضیحاتSqlDataSource نشان دهنده اتصال به یک ارائه دهنده داده ADO.NET است که داده های SQL، از جمله منابع داده قابل دسترسی از طریق OLEDB و ODBC را برمی گرداند.ObjectDataSource این امکان اتصال به یک شی تجاری سفارشی .Net را فراهم می کند که داده ها را برمی گرداند.LinqdataSource این اجازه می دهد تا به نتایج یک پرس و جو Linq-to-SQL متصل شود (فقط توسط ASP.NET 3.5 پشتیبانی می شود).AccessDataSource نشان دهنده اتصال به پایگاه داده Microsoft Access است.نماهای منبع دادهنماهای منبع داده اشیایی از کلاس DataSourceView هستند. که نمایانگر یک نمای سفارشی از داده ها برای عملیات های مختلف داده مانند مرتب سازی، فیلتر کردن و غیره است.کلاس DataSourceView به عنوان کلاس پایه برای تمام کلاس‌های نمای منبع داده عمل می‌کند که قابلیت‌های کنترل‌های منبع داده را تعریف می‌کنند.جدول زیر ویژگی های کلاس DataSourceView را نشان می دهد:توضیحات خواصCanDelete نشان می دهد که آیا حذف در منبع داده اصلی مجاز است یا خیر.CanInsert نشان می دهد که آیا درج در منبع داده اصلی مجاز است یا خیر.CanPage نشان می دهد که آیا صفحه بندی در منبع داده اصلی مجاز است یا خیر.CanRetrieveTotalRowCount نشان می دهد که آیا اطلاعات تعداد کل ردیف در دسترس است یا خیر.CanSort نشان می دهد که آیا داده ها می توانند مرتب شوند یا خیر.CanUpdate نشان می دهد که آیا به روز رسانی در منبع داده اصلی مجاز است یا خیر.رویدادها فهرستی از نمایندگان مدیریت رویداد برای نمای منبع داده دریافت می کند.نام نام نما.جدول زیر متدهای کلاس DataSourceView را ارائه می کند:شرح روشهاCanExecute تعیین می کند که آیا دستور مشخص شده قابل اجرا است یا خیر.ExecuteCommand دستور خاصی را اجرا می کند.ExecuteDelete عملیات حذف را در لیست داده هایی که شی DataSourceView نشان می دهد انجام می دهد.ExecuteInsert عملیات درج را در لیست داده هایی که شی DataSourceView نشان می دهد انجام می دهد.ExecuteSelect لیستی از داده ها را از ذخیره سازی داده های زیرین دریافت می کند.ExecuteUpdate عملیات به روز رسانی را در لیست داده هایی که شی DataSourceView نشان می دهد انجام می دهد.Delete عملیات حذف را روی داده های مرتبط با نما انجام می دهد.Insert عملیات درج را روی داده های مرتبط با view انجام می دهد.داده های درخواست شده را برمی گرداند را انتخاب کنید.Update عملیات به روز رسانی را روی داده های مرتبط با نما انجام می دهد.OnDataSourceViewChanged رویداد DataSourceViewChanged را افزایش می دهد.RaiseUnsupportedCapabilitiesError با روش RaiseUnsupportedCapabilitiesError فراخوانی می شود تا قابلیت های درخواست شده برای یک عملیات ExecuteSelect با قابلیت هایی که view پشتیبانی می کند مقایسه شود.کنترل SqlDataSourceکنترل SqlDataSource یک اتصال به یک پایگاه داده رابطه ای مانند پایگاه داده SQL Server یا Oracle یا داده های قابل دسترسی از طریق OLEDB یا Open Database Connectivity (ODBC) را نشان می دهد. اتصال به داده ها از طریق دو ویژگی مهم ConnectionString و ProviderName انجام می شود.قطعه کد زیر دستور اولیه کنترل را ارائه می دهد:<asp:SqlDataSource runat="server" ID="MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString='<%$ ConnectionStrings:LocalNWind %>' SelectionCommand= "SELECT * FROM EMPLOYEES" /><asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />پیکربندی عملیات داده‌های مختلف بر روی داده‌های زیربنایی به ویژگی‌های مختلف (گروه‌های ویژگی) کنترل منبع داده بستگی دارد.جدول زیر مجموعه ای از ویژگی های مربوط به کنترل SqlDataSource را ارائه می دهد که رابط برنامه نویسی کنترل را ارائه می دهد:توضیحات گروه اموالDeleteCommand،حذف پارامترها،DeleteCommandTypeدستور SQL، پارامترها و نوع را برای حذف ردیف‌ها در داده‌های زیرین می‌گیرد یا تنظیم می‌کند.FilterExpression،پارامترهای فیلتررشته و پارامترهای فیلترینگ داده را دریافت یا تنظیم می کند.InsertCommand،InsertParameters،InsertCommandTypeدستور SQL، پارامترها و نوع را برای درج ردیف‌ها در پایگاه داده زیرین می‌گیرد یا تنظیم می‌کند.SelectCommand،انتخاب پارامترها،CommandType را انتخاب کنیددستور SQL، پارامترها و نوع را برای بازیابی سطرها از پایگاه داده زیربنایی دریافت یا تنظیم می کند.SortParameterName نام پارامتر ورودی را می گیرد یا تنظیم می کند که رویه ذخیره شده دستور برای مرتب کردن داده ها استفاده می کند.UpdateCommand،به روز رسانی پارامترها،UpdateCommandTypeدستور SQL، پارامترها و نوع را برای به‌روزرسانی ردیف‌ها در ذخیره‌سازی داده زیربنایی دریافت یا تنظیم می‌کند.قطعه کد زیر یک کنترل منبع داده را نشان می دهد که برای دستکاری داده ها فعال شده است:<asp:SqlDataSource runat="server" ID= "MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString=' <%$ ConnectionStrings:LocalNWind %>' SelectCommand= "SELECT * FROM EMPLOYEES" UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame" DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid" FilterExpression= "EMPLOYEEID > 10"> ..... .....</asp:SqlDataSource>کنترل ObjectDataSourceکنترل ObjectDataSource کلاس‌های تعریف‌شده توسط کاربر را قادر می‌سازد تا خروجی روش‌های خود را به کنترل‌های داده‌ای مرتبط کنند. رابط برنامه نویسی این کلاس تقریباً مشابه کنترل SqlDataSource است.در زیر دو جنبه مهم از اهداف تجاری الزام آور وجود دارد:کلاس bindable باید یک سازنده پیش‌فرض داشته باشد، باید بدون حالت باشد و متدهایی داشته باشد که بتوان آن‌ها را برای انتخاب، به‌روزرسانی، درج و حذف semantics نگاشت کرد.شی باید یک مورد را در یک زمان به روز کند، عملیات دسته ای پشتیبانی نمی شود.اجازه دهید مستقیماً به یک مثال برای کار با این کنترل برویم. کلاس دانشجو کلاسی است که با منبع داده شی مورد استفاده قرار می گیرد. این کلاس دارای سه ویژگی است: شناسه دانشجویی، نام و شهر. این یک سازنده پیش فرض و یک متد GetStudents برای بازیابی داده ها دارد.کلاس دانش آموزی:public class Student{ public int StudentID { get; set; } public string Name { get; set; } public string City { get; set; } public Student() { } public DataSet GetStudents() { DataSet ds = new DataSet(); DataTable dt = new DataTable("Students"); dt.Columns.Add("StudentID", typeof(System.Int32)); dt.Columns.Add("StudentName", typeof(System.String)); dt.Columns.Add("StudentCity", typeof(System.String)); dt.Rows.Add(new object[] { 1, "M. H. Kabir", "Calcutta" }); dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" }); ds.Tables.Add(dt); return ds; }}مراحل زیر را برای اتصال شی با منبع داده شی و بازیابی داده انجام دهید:یک وب سایت جدید ایجاد کنید.با کلیک راست روی پروژه از Solution Explorer، اضافه کردن یک الگوی کلاس و قرار دادن کد بالا در آن، یک کلاس (Students.cs) به آن اضافه کنید.راه حل را بسازید تا برنامه بتواند از مرجع کلاس استفاده کند.یک کنترل منبع داده شی را در فرم وب قرار دهید.با انتخاب شیء منبع داده را پیکربندی کنید.روش(های) داده ای را برای عملیات های مختلف روی داده ها انتخاب کنید. در این مثال فقط یک روش وجود دارد.یک کنترل باند داده مانند نمای شبکه ای را در صفحه قرار دهید و منبع داده شی را به عنوان منبع داده اصلی آن انتخاب کنید.در این مرحله، نمای طراحی باید به شکل زیر باشد:پروژه را اجرا کنید، تاپل های کدگذاری شده سخت را از کلاس دانش آموزان بازیابی می کند.