سلام عرض میکنم خدمت شما کاربرای عزیز ، حالتون چطوره؟ خوب هستید؟ امیدوارم که شاد باشید و با اموزشهای ما همراه بمانید. میخوام با دو کنترل دیگه تو asp آشناتون کنم. کنترل های View و MultiView به برنامه نویس تحت وب امکان می دهد محتویات (content) یک صفحه را به گروه های مختلف تقسیم کرده و هر گروه را به صورت مجزا نمایش دهد. هر View control تنها یک گروه محتوا را مدیریت می کند و کلیه ی view control ها به صورت جمعی در یک multi-view control نگه داری می شوند.
MultiView control مسئول به نمایش گذاشتن view control ها به صورت تکی می باشد. view نمایش داده شده active view (view فعال( اطلاق می گردد.
دستور نگارش (syntax) MultiView control به صورت زیر می باشد:
<asp:MultView ID= “MultiView1” runat= “server”>
</asp:MultiView>
دستور نگارش View control:
<asp:View ID= “View1” runat= “server”>
</asp:View>
توجه داشته باشید که View control به تنهایی قابل استفاده نمی باشد و در صورت استفاده از آن به صورت جداگانه با خطا (error) مواجه می شوید. لازم است بخاطر داشته باشید که همیشه به همراه کنترل MultiView بکار می رود
<asp:MultView ID= “MultiView1” runat= “server”>
<asp:View ID= “View1” runat= “server”> </asp:View>
</asp:MultiView>
خاصیت های کنترل های MultiView و View
هر دو کنترل های view و MultiView از کلاس Control مشتق می شوند و از این رو تمامی خاصیت ها (property)، توابع و رخدادهای (event) آن را به ارث می برند. مهم ترین خاصیت view control، خاصیت Visible از نوع Boolean (بولی) می باشد که قابلیت رویت (visibility) یک view را تنظیم می کند.
MultiView control خاصیت هایی دارد که ذیل فهرست شده:
خاصیت | شرح |
Views | مجموعه (collection) control view های داخل MultiView را بازیابی می کند. |
ActiveViewIndex | اندیس active view control را بازیابی کرده یا مقداردهی می کنید.
یک اندیس که از صفر شروع می شود بازگردانی می کند. اندیس صفر به معنای وجود active view در کنترل multiview می باشد و -۱ نشانگر عدم وجود active view می باشد. |
خصیصه ی CommandName کنترل button با پیمایش (navigation) کنترل MultiView در برخی از فیلدهای کنترل MultiView مرتبط و مشابه هستند.
جدول زیر command name های پیش فرض خاصیت های فوق را ارائه می دهد:
خاصیت | شرح |
NextViewCommandName | NextView |
PreviousViewCommandName | PrevView |
SwitchViewByIDCommandName | SwitchViewByID |
SwitchViewByIndexCommandName | SwitchViewByIndex |
توابع مهم کنترل multiview به ترتیب زیر می باشند:
متد | شرح |
SetActiveview | این تابع active view را تنظیم می کند. |
GetActiveview | Active view را بازیابی می کند. |
هر بار که یک view عوض می شود، صفحه به server (رایانه ی سرویس دهنده) برگردانده (post back) شده و تعدادی رویداد (event) به دنبال آن فعال می شوند. برخی از این رخدادهای پرکاربرد کنترل ذکر شده زیر فهرست شده اند:
رخداد (event) | شرح |
ActiveViewChanged | این رخداد زمانی فعال می شود که یک view عوض شود (تغییر کند). |
Activate | این event هنگامی روی می دهد که control view (کنترل نمای) جاری تبدیل به active view (نمای فعال) شود. |
Deactivate | زمانی رخ می دهد که active view control (کنترل view فعال (جاری غیر فعال شده باشد. |
جدا از خواص، متدها و رخدادهای فوق، کنترل multiview اعضای کلاس object و control را به ارث می برد.
مثال:
نمونه صفحه مثال ما دارای سه view می باشد. هر view برای پیمایش بین view ها از دو دکمه بهره می گیرد.
Content file code:
<%@ 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 تعیین می کند کدام view نمایش داده شود. view انتخابی تنها view ای است که روی صفحه render (بارگذاری و نمایش داده) می شود. در صورتی که هیچ view ای نمایش داده نشود، مقدار پیش فرض ActiveViewIndex، -۱ می باشد. از آنجایی که مقدار ActiveViewIndex در مثال مورد نظر ۲ تعریف (مقداردهی) شده است، به هنگام اجرا، view سوم به نمایش گذاشته می شود.