اتصال کنترل DetailsView به منبع داده و نمايش اطلاعات

مقدمه :

همانطور که در بخش مقدمه گفتيم ، کنترل DetailsView برای نمايش اطلاعات يک جدول بانک اطلاعاتی در قالب يک ساختار جدولی به کار می رود ، که در هر صفحه آن ، اطلاعات يک رکورد از جدول بانک اطلاعاتی نمايش داده می شود . در اين ساختار جدولی ، هر سطر جدول ، اطلاعات يک فيلد ( Field ) دادهای از رکورد جاری را شامل می شود . اما این کنترل خود به صورت مستقيم ، فادر نيست تا به منبع داده ای از قبيل پايگاه های داده SQL Server و يا Access متصل شود و اطلاعات مورد نياز برای نمايش را دريافت کند . برای اين منظور بايد کنترل DetailsView را به يک کنترل سرور داده همانند SqlDataSource و AccessDataSource که خود قبلا به پايگاه داده متصل شده اند ، مرتبط ساخت . در اين حالت ، کنترل سرور داده همانند يک پل بين کنترل DetailsView و پايگاه داده عمل کرده و اطلاعات را از جدول پايگاه داده دريافت نموده و آن را برای نمايش به کنترل DetailsView ارسال می کند . در واقع بين کنترل DetailsView و کنترل سرور داده پايگاه داده رابطه زير بر قرار است :

منبع داده ای       کنترل سرور داده       کنترل DetailsView   

راهنمايي : برای آشنایی با نحوه عملکرد کنترل های SqlDataSource و AccessDataSource به بخش آموزش اين کنترل ها برويد .


نحوه اتصال کنترل DetailsView به کنترل های سرور داده :

برای اتصال يک کنترل DetailsView به يک کنترل سرور داده ، بايد مقدار خاصيت DataSourceID کنترل DetailsView را برابر با مقدار ID کنترل سرور داده که می خواهيم کنترل DetailsView به آن متصل شود ، قرار دهيم . برای مثال فرض کنيد که می خواهيم يک کنترل DetailsView را به يک کنترل سرور داده SqlDataSource که ID آن برابر با SqlData1 است ، متصل کنيم . در اين حالت بايد مقدار خاصيت DataSourceID کنترل DetailsView را برابر با مقدار ID کنترل SqlDataSource یعنی مقدار SqlData1 قرار دهيم . اين مثال را در نمونه کد زير به صورت عملی نشان داده ايم . در اين حالت کنترل DetailsView اطلاعات را از کنترل SqlDataSource به عنوان کنترل سرور داده دريافت کرده ، آنها را قالب بندی نموده و نمايش می دهد .

Example
< asp:SqlDataSource   ID="SqlData1"   runat="server"   ConnectionString = " < %$ ConnectionStrings:UniverCityConnectionString %> "   SelectCommand = " SELECT * FROM Students " >
</asp:SqlDataSource>


< asp:DetailsView   ID="DetailsView1"   runat="server"   DataSourceID="SqlData1" >
< /asp:DetailsView >
کد

مثال شماره 2 : در مثال زير کنترل DetailsView بالا را به يک کنترل AccessDataSource متصل کرده ايم . همانطور که می بينيد ، تفاوتی در نحوه اتصال آنها وجود ندارد . همچنين در اين مثال يک سطر با عنوان خروجی را نيز به جدول مثال اضافه کرده ايم ، که کنترل DetailsView را در هنگام نمايش دادن اطلاعات دريافتی به صورت عملی نشان می دهد . در اين مثال خاصيت صفحه بندی ( Paging ) را در کنترل DetailsView که در بخش های بعدی به بررسی آن می پرادزيم ، فعال کرده ايم و به همين دليل می توانيد بین رکوردهای جدول بانک اطلاعاتی حرکت کنيد :

Example
< asp:AccessDataSource   ID = " AccessData1 "   runat="server"   DataFile = " ~/App_Data/UniverCity.mdb "   SelectCommand = " Select Name , Family From Students " > < /asp:AccessDataSource >

< asp:DetailsView   ID="DetailsView1"   runat="server"   DataSourceID="AccessData1"   AllowPaging = " True " >
< /asp:DetailsView >
کد
NameMohsen
FamilyAmiri
12345
خروجی


اتصال کنترل DetailsView به کنترل سرور داده در محيط طراحی نرم افزار Visual Studio 2005 :

همچنين می توان از طريق محيط طراحی ( Design ) نرم افزار ويژوال استوديو کنترل DetailsView را به يک کنترل سرور داده متصل کرد . برای اين منظور بايد به روش زير عمل کرد :

  1. صفحه مورد نظر خود را در نرم افزار Visual Studio باز کرده و از منوی Toolbox و قسمت Data يک کنترل DetailsView را بر روی صفحه قرار دهيد .
  2. يک کنترل سرور داده ( مثل SqlDataSource يا AccessDataSource ) را که می خواهيد کنترل DetailsView به آن متصل شود را از Toolbox و قسمت Data بر روی صفحه قرار داده و آن را به پايگاه داده مورد نظر متصل کرده و برای آن دستور Select لازم را تعيين کنيد .
    توجه : برای دريافت اطلاعات درباره نحوه تنظيم کنترل های سرور داده به بخش آموزش کنترل های سرور داده برويد .
  3. کنترل DetailsView را از روی صفحه انتخاب کرده و بر روی آن کليک سمت راست کنيد . از منوی باز شده گزينه Show Smart Tag را انتخاب کنيد .يک منوی جديد باز می شود ،که دارای سطری با عنوان Choose Data Source است ، که يک کادر کشویی نيز در مقابل آن قرار دارد . از کادر کشویی ، ID کنترل سرور داده ای که می خواهيد کنترل DetailsView به آن متصل شود را انتخاب کنيد .
    نکته مهم : در کادر کشویی ذکر شده ، ID تمام کنترل های سرور داده ای که بر روی صفحه مورد نظر قرار دارند ، به طور خودکار نمايش داده می شود .

اکنون کنترل DetailsView شما به کنترل سرور داده مورد نظر متصل شده و در هر بار اجرای صفحه ، اطلاعات دريافتی را از کنترل سرور داده مرتبط با خود دريافت کرده و آن را به صورت مرتب نمايش خواهد داد .