اتصال به کنترل داده
همانطور که در قسمت قبل توضیح دادیم ، برای اتصال به یک منبع اطلاعاتی ( مثلا یک پایگاه داده SQL Server و یا Access ) ، بایستی ابتدا یک کنترل داده مرتبط به آن نوع منبع اطلاعاتی مثل کنترل SqlDataSource و یا AccessDataSource را به منبع اطلاعاتی متصل کرده و سپس یک کنترل وب که قادر به نمایش اطلاعات به دست آمده است مثل یک کنترل FormView یا GridView را به کنترل داده متصل کنیم .
در این حالت کنترل داده در مواقع درخواست شده به پایگاه داده متصل شده و اطلاعات لازم را از آن دریافت می کند . سپس کنترل وب متصل به کنترل داده ، اطلاعات دریافتی را قالب بندی کرده و نمایش می دهد . بنابراین کنترل های داده خود قادر به نمایش اطلاعات به دست آمده نیستند و فقط در نقش تامین کننده اطلاعات درخواستی به کار می روند . با استفاده از ترکیب یک کنترل داده و یک کنترل وب می توانید به راحتی و با حجم بسیار پایین کدنویسی ، اطلاعات موجود در هر منبع داده ای را خوانده ، حذف ، ویرایش ، صفحه بندی و یا مرتب سازی کنید .
اتصال یک کنترل وب به یک کنترل داده :
به طور کلی ۲ روش برای اتصال یک کنترل وب به یک کنترل داده وجود دارند که عبارتند از :
اتصال در محیط کدنویسی با استفاده از خاصیت DataSourceID
اتصال با استفاده از محیط طراحی ( Design ) در نرم افزار Visual Studio 2005
در ادامه به معرفی و توضیح دو روش فوق می پردازیم :
۱ ) اتصال در محیط کدنویسی با استفاده از خاصیت DataSourceID :
برای اینکه یک کنتزل وب را به یک کنترل داده متصل کنیم ، بایستی خاصیت DataSourceID کنترل وب را برابر با مقدار ID کنترل داده قرار دهیم . برای مثال اگر یک کنترل داده SqlDataSource داشته باشیم که ID آن برابر با SqlControl1 بوده و قبلا به یک پایگاه داده SQL Server متصل شده است و بخواهیم یک کنترل وب از نوع GridView را به آن مرتبط سازیم ، باید مقدار خاصیت DataSourceID کنترل GridView را برابر با مقدار ID کنترل SqlDataSource مورد نظر یعنی SqlControl1 قرار دهیم .
مثال ۱ : در مثال زیر یک کنترل GridView را به یک کنترل SqlDataSource که ID آن برابر با SqlControl1 است ، متصل ساخته ایم :
<form id=”form1″ runat=”server”><asp:GridView ID=”GridView1″ runat=”server” DataSourceID=”SqlControl1″> </asp:GridView> <asp:SqlDataSource ID=”SqlControl1″ runat=”server” < form > |
مثال ۱ : در مثال زیر یک کنترل FormView را به یک کنترل AccessDataSource که ID آن برابر با Access_EX است ، متصل ساخته ایم :
<form id=”form1″ runat=”server”><asp:FormView ID=”FormView1″ runat=”server” DataSourceID=”Access_EX”> </asp:FormView> <asp:AccessDataSource ID=”Access_EX” runat=”server” DataFile=”~/App_Data/Payment.mdb” < form > |
۲ ) اتصال یک کنترل وب به یک کنترل داده در محیط طراحی ( Design ) در نرم افزار Visual Studio 2005:
ابتدا فایل صفحه را در برنامه باز کرده و موارد زیر را به ترتیب اجرا کنید .
* نکته : برای آموزش این بخش ، از مثالی استفاده می کنیم که در آن می خواهیم یک کنترل وب GridView را به یک کنترل داده SqlDataSource متصل کنیم . در این مثال فرض می کنیم ، که کنترل SqlDataSource قبلا بر روی صفحه وجود داشته و به یک پایگاه داده SQL Server متصل شده است . برای دریافت اطلاعات راجع به نحوه اتصال کنترل SqlDataSource به پایگاها داده به بخش آموزش اتصال یک کنترل SqlDataSource به پایگاه داده بروید .
برنامه را در حالت Design قرار داده و سپس یک کنترل GridView را از منوی Toolbox بر روی صفحه اضافه کنید .
بر روی کنترل GridView کلیک سمت راست کرده و از منوی ظاهر شده ، گزینه Show Smart Tag را انتخاب کنید .
منوی GridView Tasks ظاهر شده و در قسمت Choose Data Source ،مقدار ID کنترل SqlDataSource مورد نظر را از کادر کشویی آن انتخاب کرده و به محیط طراحی باز گردید .
هم اکنون دو کنترل GridView و SqlDataSource به هم متصل بوده و کنترل GridView می تواند از اطلاعات فراهم شده توسط کنترل SqlDataSource استفاده کرده و به پایگاه داده آن متصل شود .
نکته ۲ : هر دو روش ذکر شده ، خروجی یکسانی را در قسمت کدنویسی ایجاد می کنند . در واقع در روش دوم برنامه به طور اتوماتیک کد لازم را برای ارتباط دو کنترل ایجاد می کند و تنها تفاوت آنها این است که در روش دوم از محیط تصویری ( Visual ) اسفاده می کنیم . اگر پس از انجام روش دوم به قسمت کدنویسی بروید ، خواهید دید که خاصیت DataSourceID کنترل GridView برابر ID کنترل SqlDataSource شده است .
نکته ۳ : در آینده می توانید با تغییر مقدار خاصیت DataSourceID کنترل GridView آن کنترل را به هر کنترل وب دلخواه دیگر متصل کنید .