PDA

View Full Version : سوال: تشخیص خالی بودن و یا نبودن فیلد ها در گریدویو



moferferi
پنج شنبه 23 شهریور 1391, 13:13 عصر
سلام.
در گریدویو ستون های از نوع BoundField خاصیتی به نام NullDisplayText داره.
که اگه فیلد خالی بود اون را به جاش یه متن خاصی نشون میده.
حالا من میخوام به جای اون متن یه عکس نشون بدم.مثلا فیلد های خالی را به جاش یه عکس ضبدر بزارم

و اگه فیلد پر هم بود به جای متن داخلش یه عکس دیگه نشون بده.

mdt414
جمعه 24 شهریور 1391, 19:33 عصر
سلام،
از 2 روش میتونی استفاده کنید، یکی از سمت کد که توی رویداد DataBound استفاده کنید و ببنید اگر مقدار اون سلول خالی یا space باشه مقدارش رو عوض کنید و کد html مربوطه رو برگردونید. راه حل دیگه هم اینه که به جای NullDisplayText از کد html اتفاده کنی. ولی من روش کد رو ترجیح میدم. اگر واضح نبود بگید مثال بزنم.

moferferi
شنبه 25 شهریور 1391, 11:22 صبح
ممنون از پاسختون.
چه طوری میشه به جای تگ NullDisplayTextیک تگ htmlمثل img گذاشت؟
و اگه میشه یه مثال هم بزنید از نحوه چک کردن خالی بودن یا نبودن سمت کد.و جای گذاری اون به یک عکس.
این را هم بگم که من با ef کار میکنم.
البته خودم مشکل را به وسیله جی کوئری(قربونش برم)حل کردم.ولی میخوام بدونم موقع بایند کردن گرید چه طوری میشه مقدار رکورد ها را چک کرد؟
با تشکر

mdt414
شنبه 25 شهریور 1391, 11:46 صبح
فرقی نمیکنه که از Ef استفاده می کنید یا sp. باید در رویداد RowDataBound مقدار سلول مورد نظرتون رو چک کنید. البته برای چک کردن خالی بودن ابتدا مقدار مقدار Text رو Trim کنید بعد چک کنید، البته میتونید از String.IsNullOrEmpty هم استفاده کنید.



protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.DataRow)

{

if (e.Row.Cells[3].Text.Trim() == string.Empty)

{

e.Row.Cells[3].Text = '<img src="image.jpg" />';

}

}

}