PDA

View Full Version : دلیل استفاده از DataBinder.Eval



PrinceDotNet
دوشنبه 18 مهر 1384, 16:38 عصر
چرا در بعضل جاها از <%# DataBinder.Eval(Container.DataItem, "Price") %> استفاده میشه و چرا ازContainer.DataItem.price استفاده نمی کنیم.

Behrouz_Rad
دوشنبه 18 مهر 1384, 21:04 عصر
عبارت استاندارد Binding در ASP.NET، عبارت:


<%# Container.DataItem("myField") %>

است.
حالت توسعه یافته ی این عبارت که به شما امکان کنترل بیشتری بر روی خروجی می دهد، عبارت:


<%# DataBinder.Eval(Container.DataItem, "myField") %>

است.
در حالت کلی، استفاده از عبارت اول برای تمامی اعمال Binding توصیه می شود.
اولین دستور، عمل چاپ خروجی را بدون Type Casting انجام دهد و همان چیزی را که دریافت می کند عینا در خروجی نمایش می دهد.
دستور دوم، در Overload اول خود و در آرگومان سوم، امکان تعیین فرمت خروجی را نیز به برنامه نویس می دهد.
اگر این فرمت تعیین نشود، عمل Type Casting به طور خودکار برای داده های خروجی انجام می پذیرد.
از آنجا که تبدیل نوع داده ها عملی زمان گیر محسوب می شود، باید از استفاده از عبارت دوم تا حد ممکن خودداری کرد.
اما از آنجا که داده هایی که بر روی وب فرم به عنوان خروجی قرار می گیرند به عنوان داده ی رشته ای در نظر گرفته می شوند، در صورت استفاده از دستور اول در پاره ای مواقع، "عدم سازگاری نوع داده" رخ خواهد داد و مجبور به استفاده از دستور دوم هستید.
موفق باشید.