نمایش اطلاعات در کنترل 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:GridView>

<asp:SqlDataSource  ID=”SqlControl1″  runat=”server”
ConnectionString=”<%$ ConnectionStrings:Univer_Connection %>”
SelectCommand=”Select * from Students”>
</asp:SqlDataSource>

< 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”
ConnectionString=”<%$ ConnectionStrings:Univer_Connection %>”
SelectCommand=”Select * from Students”></asp:SqlDataSource>

<asp:DetailsView    ID=”DetailsView1″    runat=”server”   DataSourceID=”SqlControl2″>
</asp:DetailsView>
< form >