نمايش اطلاعات در کنترل 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 >
|
نکته 1 : دو کنترل SqlDataSource و کنترل وب متصل به آن حتما بايستی
در يک صفحه ASP.NET واحد با هم قرار داشته باشند . به عبارت ديگر 2 کنترل در 2 صفحه
مختلف را نمی توان به هم متصل کرد .
نکته 2 : می توان چندين کنترل وب را به صورت همزمان به يک کنترل داده
SqlDataSorce متصل کرد و محدوديتی در اين زمينه وجود ندارد .
مثال 2 : در مثال زير علاوه بر يک کنترل 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 >
|