Data-Binding-طراحی-سایت-با-asp.net_

ادامه Data Binding

قسمت قبلی

خوب اين دو تگ که اصلا شبيه ھم نيستند؟منظور از اينکه گفتيم خيلی ھا اين تگ را با تگ script block اشتباه می گيرند از نظر ظاھری نيست بلکه از نظر طرز کار است.چون تگ script block نيز به ھر نحوی به اجزای دسترسی دارد.ولی تفاوت اين دو تگ در اينجاست که شما در تگ script block می توانيد ھر چند خط  و ھر نوع و تعداد دستوری در طراحی سایت بنويسيد ولی در تگ <…#%> شما نمی توانيد ھر گونه کد نويسی کنيد.مثلا کد زير را اگر بنويسيد Error جور واجوری از شما می گيرد :

%#>
If a = 0 Then
(“طراحی سایت اصفهان الو وب“) Response.Write
Else

(“چاپ نکن طراحی سایت اصفهان الو وب “) Response.Write
End If
<%

پس تگ <…#%> تنھا برای DataBinding  وبسایت کاربرد دارد و بس.جلوتر با اين تگ بسيار کار خواھيم داشت از جمله کاربردش در کنترل.Repeater  تگ ديگری که در زمينه ی DataBinding کاربرد دارد تگ <…$%> است .در زير مثال ھايی از کاربرد اين تگ را می بينيد:

در اينجا ما به يک appSetting به نام SEO site (که با علامت :از کلمه ی کليدی appSetting جدا شده) در فايل Web.Config دسترسی داريم.و آن را در يک کنترل  Literal  قرار می دھيم.بر خلاف تگ <…#%> از تگ <…$%> نمی توان در ھر جا و جای ھر خاصيت کنتر ل ھای وبسایت استفاده کرد.اين تگ تنھا در کنترل Literal کنترلی که برای متونی که نمی خواھند تغيير کنند استفاده می شود که کنترلی مثل Label است کار می کند.شما ھمچنين می توانيد به ConectionString موجود در فايل Web.Config دسترسی داشته باشيد:

در اينجا ما به يک appSetting به نام SEO site که با علامت :از کلمه ی کليدی appSetting جدا شده در فايل Web.Config دسترسی داريم.و آن را در يک کنترل قرار می دھيم دھيم.بر خلاف تگ <…#%> از تگ <…$%> نمی توان در ھر جا و جای ھر خاصيت کنتر ل ھای وب استفاده کرد.اين تگ تنھا در کنترل  که برای متونی که نمی خواھند تغيير کنند استفاده می شود که کنترلی مثل Label است کار می کند.شما ھمچنين می توانيد به ConectionString موجود در فايل Web.Config دسترسی داشته باشيد:

برای دسترسی به ConectionString ھا نيز می توان آن ھا را در کنترل SqlDataSource بازيابی کرد که در ادامه در مورد آن صحبت می کنيم. به مواردی که تا به حال به ان اشاره شد data binding expression گفته میشود.يعنی Bind کردن عبارات.شما می توانيد Custom Expression بسازيد.مثلا در زير ما از يک Custom Expression که نامش RandomNumber است استفاده میکنيم و پس از نام ان : و سپس دو عدد در يافت می شود که عدد تصادفی بين ان ھا توليد <asp:Literal Runat=”server” Text=”<%$ RandomNumber:1,6 %>” />

Custom Expression ھا حتما در داخل تگ <…$%> استفاده می شوند و به ھمين دليل يا در کنترل Literal قابل دستيابی ھستند و يا در صفت ھای  ساخت آن ھا ساده نيست و بسيار دشوار می باشد و چون در ادامه ی کار نيازی به آنمتناظرشان.از طرفی پيدا نمی کنيم از بيان ان صرف نظر می کنيم.تا اينجا مقدماتی از DataBinding بيان شد.از اينجا به بعد وارد اصل کار میشويم.حتما با کنترل ھای ليستی مثل ListBox-DropDownList-CheckBoxList- آشنا ھستيد.اين کنترل ھا چند خاصيت مشترک در زمينه ی Data Binding Data Binding

يا ھمان منبع داده ای که منبع داده ای برای کنترل ھا است و داده ھا
از انجا برای کنترل ھا تامين می شوند.اين منابع داده ای حتما نبايد از
پايگاه داده تامين شوند بلکه می توانند از يک کلکسيون HashTable ھم تامين شوند.
 DataSource
نام ستون منبع داده است.مثلا برای دسترسی به ستونی از پايگاه داده به نام به  Emp_name بايد اين مقدار را Emp_name بگذاريد.اين خاصيت باعث می شود ستونی از منبع داده در کنترل ليستی نمايش داده شود. DataTextField
ھمانطور که ميدانيد کنترل ھای ليستی تنھا يک ستون بيشتر نداشته و ھر سطر آن يک Text شما می توانيد Value مقاديری را که در کنترل خود قرارمی دھيد نيز تعيين کند مثلا در بالا DataTextField برابر Emp_name است شما می توانيد DataValueField آن را نام خانوادگی بگذاريد که در اينجا ھم بايد نام ستون منبع داده ذکر شود. DataValueField

با يک مثال عملی درک بيشتری از اين قضيه پيدا می کنيد. از يک HashTable به عنوان DataSource در طراحی سایت استفاده می کنيم.ومقاديری به آن اضافه می کنيم:

سپس ھمه نوع کنترل ھای ليستی را وارد صفحه کرده و منبع داده ای آن ھا را ھمين HashTable قرارداده و ھمه را DataBind می کنيم:

Dim j As New Hashtable
( “سئو سایت در اصفهان الو وب,0) j.Add
(“j.Add(1, “reza
(“j.Add(2, “jafar
(“j.Add(3, “sadegh

با اجرای صفحه می بينيد که مقاديربه درستی نمايش داده نشده اند.زيرا جای ھر داده مشخص نيست.اينکار با خصوصيت ھای DataTextField  و  DataValueField صورت می گيرد.ھمانطور که گفتيم بايد به اين دو مقدار به طور دلخواه نام ستون ھای منبع داه ای را بدھيم.منبع داده ای ما HashTable است که خود يک جدول است و دارای دو ستون Value و Key می باشد.پس مثلا برای کنترل ListBox به صورت زير   دو خصوصيت DataTextField و   DataValueField را بر اساس منبع داده ای که HashTable است مقدار دھی می کنيم تا تمام مقادير Key که  HashTable که در سایت ھستنند در کنترل ListBox نمايش داده شوند:

و در نھايت Bind کردن ھمه به صورت يکجا: دقت کنيد که مقاديری که در تنھا ستون اين کنترل ھا نمايش داده می شوند مقادير ستون Key از HashTable است برای دسترسی به Value آنھا , ھمانطور که در خصوصيت DataValueField مقدار دھی شد می توان يک دکمه نيز به صفحه اضافه کرد و مقادير Select شده از اين کنترل ھا را برگرداند:

 

اشتراک گذاری پست

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *