نمايش اطلاعات در کنترل 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 متصل ساخته ايم :

Example
<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 متصل کرده ايم ، و هر دو کنترل به درستی با منبع کنترل داده ای به صورت همزمان کار خواهند کرد :

Example
<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 >
کد