نمایش اطلاعات در کنترل SqlDataSource
پس از اینکه تمام مراحل اتصال کنترل داده به پایگاه داده انجام شد و دستور Select مورد نظر نیز برای دریافت اطلاعات ، مشخص گردید ، نوبت به نمایش اطلاعات دریافتی می رسد . به عبارت دیگر باید اطلاعات دریافت شده را به نحوی در معرض نمایش کاربران قرار داد .
همانطور که در بخش های قبلی شرح دادیم ، کنترل های داده از جمله SqlDataSource فقط برای دریافت و ازسال اطلاعات به منبع داده ای استفاده شده و خود قادر به نمایش و یا ویرایش اطلاعات نیستند . برای نمایش اطلاعات دریافتی کنترل SqlDataSource ، بایستی یک کنترل وب که توانایی نمایش داده به صورت قالب بندی شده را دارد مثل کنترل های GridView و FormView را به کنترل SqlDataSource متصل کرد . برای اینکه یک کنترل وب را به یک کنترل SqlDataSource متصل کرد ، باید مقدار خاصیت DataSourceID کنترل وب را برابر با ID کنترل SqlDataSource مورد نظر قرار داد . برای مثال فرض کنید که یک کنترل SqlDataSource با ID برابر با Sql1 را به پایگاه داده متصل کرده و می خواهیم اطلاعات دریافتی از آن را به وسیله یک کنترل GridView بر روی صفحه نمایش دهیم . در این حالت بایستی مقدار خاصیت DataSourceID کنترل GridView را برابر با ID کنترل SqlDataSource یعنی مقدار Sql1 قرار داد .
پس از انجام این عمل ، در هنگام اجرای صفحه ، کنترل SqlDataSource به منبع داده ای متصل شده ، اطلاعات درخواستی را بر حسب دستور Select خود دریافت نموده و آنها را برای نمایش به کنترل وب ارسال می کند . کنترل وب نیز اطلاعات دریافتی را قالب بندی کرده و و نمایش می دهد .
اما برای ویرایش اطلاعات ، باید قالبا اطلاعات را در کنترل های وبی که قابلیت تغییر داده را دارند ، ویرایش کرده و پس از تایید تغییرات ، کنترل وب اطلاعلات تغییر یافته را به کنترل سرور داده ارسال می کنند ، تا به منبع داده تحویل داده شوند .
مثال : در مثال زیر یک کنترل SqlDataSource را به پایگاه داده متصل کرده و سپس یک کنترل GridView را برای نمایش اطلاعات آن با استفاده از خاصیت DataSourceID به کنترل SqlDataSource متصل ساخته ایم :
<form id=”form1″ runat=”server”>
<asp:GridView ID=”GridView1″ runat=”server” DataSourceID=”SqlControl1″> <asp:SqlDataSource ID=”SqlControl1″ runat=”server” < form >
|
نکته ۱ : دو کنترل SqlDataSource و کنترل وب متصل به آن حتما بایستی در یک صفحه ASP.NET واحد با هم قرار داشته باشند . به عبارت دیگر ۲ کنترل در ۲ صفحه مختلف را نمی توان به هم متصل کرد .
نکته ۲ : می توان چندین کنترل وب را به صورت همزمان به یک کنترل داده SqlDataSorce متصل کرد و محدودیتی در این زمینه وجود ندارد .
مثال ۲ : در مثال زیر علاوه بر یک کنترل GridView یک کنترل DetailsView هم را به کنترل SqlDataSource متصل کرده ایم ، و هر دو کنترل به درستی با منبع کنترل داده ای به صورت همزمان کار خواهند کرد :
<form id=”form1″ runat=”server”><asp:GridView ID=”GridView1″ runat=”server” DataSourceID=”SqlControl2″> </asp:GridView> <asp:SqlDataSource ID=”SqlControl2″ runat=”server” <asp:DetailsView ID=”DetailsView1″ runat=”server” DataSourceID=”SqlControl2″> |