Binding در Template Field


  
همانطور که می‌دانید ما به اشیای درون Template Field ها در کد، دسترسی مستقیم نداریم، شما به راحتی می‌توانید Bound Column به یک GridView اضافه کنید ولی اگر Template Field و یا به قول قدیمی‌تر ها Template Column داشته باشید و بخواهید اشیای موجود در آن را (مثلا متن یک Lable) را Bind کنید باید چه کار کرد؟

پاسخ، تابع Eval است، فرض ما این است که شما قبلا به خود Gridview یک Data source داده‌اید و حالا مشکل فقط نمایش Record های آن در اشیای مورد نظر شما است، در حقیقت Container شما دارای Datasource می‌باشد و کافیست که شما از طریق تابع Eval به فیلدهای آن دسترسی پیدا کنید.

شی DataBinder این تابع را در اختیار ما می‌گذارد:
DataBinder.Eval(container, "dataitem.Title")
در مثال فوق، شما به جای Title نام فیلد مورد نظر خود را خواهید گذاشت.

البته این کار را به این راحتی هم می‌توانید انجام دهید:
Eval(“Title”)
حالا این کد باید کجا نوشته بشود؟
کافیست که در محیط Edit Templates، روی شی مورد نظر کلیک کرده و Edit Bindings را برای آن انتخاب کنید، حالا با انتخاب Property مورد نظر و گزینه Custom binding  برای آن می‌توانید Code Expression مورد نظر را (Eval(“FieldName”)) برای آن بنویسید.

هیچ نظری موجود نیست: