PDA

View Full Version : سوال: تشخیص فیلد خالی در کنترل Repeater



goldax
دوشنبه 30 بهمن 1391, 09:22 صبح
با درود خدمت اساتید محترم

چطور می تونم موقع استفاده از asp:repeater و نمایش یک فیلد از بانک اطلاعاتی، مثل:

DataBinder.Eval(Container.DataItem, "name")

تشخیص بدم که آیا اون فیلد خالی هست یا پر.
در حقیقت می خوام اگر یک فیلد خالی بود ، یک مقدار پیش فرض رو به جای اون نمایش بدم.
مقاله های زیادی خوندم که کدی مثل:


DataBinder.Eval(Container.DataItem, "name")== DBNull.Value ? "xxxxxx" : DataBinder.Eval(Container.DataItem, "name")

رو پیشنهاد داده بودند، اما کار نکرد.
ممنون میشم راهنمایی بفرمایید.

mohsen_f_b
دوشنبه 30 بهمن 1391, 09:35 صبح
سلام

این کد رو من استفاده می کنم و مشکلی باهاش ندارم

Eval("name").ToString() == "" ? "xxxxxx" : Eval("name").ToString()


فکر کنم اینطوری واسه Null بودن هم بهت جواب بده
تست نکردم اینو!

string.IsNullOrEmpty(Eval("name").ToString()) ? "xxxxxx" : Eval("name").ToString()

موفق باشید

goldax
دوشنبه 30 بهمن 1391, 10:00 صبح
با تشکر فراوان از آقای mohsen_f_b (http://barnamenevis.org/member.php?23619-mohsen_f_b)که با سرعت زیاد به مشکل من رسیدگی کردند، جهت اطلاع دوستانی که ممکنه با مشکل من مواجه شوند:
مشکل با استفاده از کد:


string.IsNullOrEmpty(DataBinder.Eval(Container.Dat aItem, "name").ToString()) ? "xxxxxx" : DataBinder.Eval(Container.DataItem, "name")


حل شد همونجوری که دوستمون mohsen_f_b کد رو اصلاح کردن.به این شکل عمل می کنه که در صورتی که فیلد مورد نظر در جدول بانک اطلاعاتی (که اینجا فیلدی با نام name در نظر گرفته شده) خالی بود با رشته xxxxxx جایگزین میشه.
یک کاربرد این کد برای زمانی هست که می خواین repeater رو با عکس پر کنید،چنانچه آدرسی برای عکس در بانک اطلاعاتی وجود نداشت یک تصویر پیش فرض به جای اون نمایش می دید.