PDA

View Full Version : سوال: رنگی کردن ردیف datagrid



Iran58
پنج شنبه 10 دی 1394, 10:42 صبح
سلام
چگونه می توانم ردیفهای دیتاگرید را(مثلا ردیفهای که در ستون ها نام احمد باشد)رنگی کنم

cmsdqq2
پنج شنبه 10 دی 1394, 11:24 صبح
dataGridView1.AlternatingRowsDefaultCellStyle.Back Color = Color.LightBlue;

Iran58
پنج شنبه 10 دی 1394, 11:31 صبح
dataGridView1.AlternatingRowsDefaultCellStyle.Back Color = Color.LightBlue;

باسلام
می خواهم همراه شرط این کار انجام شود
مثلا ردیفهای که در ستون ها نام احمد باشد

khokhan
پنج شنبه 10 دی 1394, 12:20 عصر
باسلام
می خواهم همراه شرط این کار انجام شود
مثلا ردیفهای که در ستون ها نام احمد باشد

.................................................. ..........

private void checkForSurveyColour()
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
try
{
string CNumColour = row.Cells["Name"].FormattedValue.ToString();
if (CNumColour != null)
{
foreach (DataGridViewCell cells in row.Cells)
{
if (CNumColour == "احمد")
{
cells.Style.ForeColor = Color.DarkBlue;
}
else if (CNumColour == "بهمن")
{
cells.Style.ForeColor = Color.DarkGray;
}
}
}


}
catch (System.Exception ex)
{

}
}


}

Iran58
پنج شنبه 10 دی 1394, 13:18 عصر
.................................................. ..........

private void checkForSurveyColour()
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
try
{
string CNumColour = row.Cells["Name"].FormattedValue.ToString();
if (CNumColour != null)
{
foreach (DataGridViewCell cells in row.Cells)
{
if (CNumColour == "احمد")
{
cells.Style.ForeColor = Color.DarkBlue;
}
else if (CNumColour == "بهمن")
{
cells.Style.ForeColor = Color.DarkGray;
}
}
}


}
catch (System.Exception ex)
{

}
}


}

سلام
برای دیتاگرید تلریک باید چی بنویسم استاد

zayens
پنج شنبه 10 دی 1394, 13:20 عصر
توی تلریک داخل خود تنظیمات دیتاگرید میتونید بدون این کدها تغییرات سطر و رنگی کردن سطرها (یکی در میان) یا سطرهای دارای مقادیر خاص را براحتی و بدون هیچ کدی انجام بدید

Iran58
پنج شنبه 10 دی 1394, 13:50 عصر
توی تلریک داخل خود تنظیمات دیتاگرید میتونید بدون این کدها تغییرات سطر و رنگی کردن سطرها (یکی در میان) یا سطرهای دارای مقادیر خاص را براحتی و بدون هیچ کدی انجام بدید
میشه بیشتر توضیح بدهید

khokhan
پنج شنبه 10 دی 1394, 15:06 عصر
سلام
برای دیتاگرید تلریک باید چی بنویسم استاد

دررویداد CellFormatting می تونین اینطوری بنویسین :



void radGridView1_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.Column.Name == "name"
&& !string.IsNullOrEmpty(e.Row.Cells["name"].Value.ToString())
&& e.Row.Cells["name"].Value.ToString()=="احمد")
{
e.CellElement.DrawFill = true;
e.CellElement.BackColor = Color.Red;
e.CellElement.NumberOfColors = 1;
}
else
{
e.CellElement.ResetValue(LightVisualElement.DrawFi llProperty, ValueResetFlags.Local);
e.CellElement.ResetValue(LightVisualElement.BackCo lorProperty, ValueResetFlags.Local);
e.CellElement.ResetValue(LightVisualElement.Number OfColorsProperty, ValueResetFlags.Local);
}
}

Iran58
یک شنبه 13 دی 1394, 10:56 صبح
دررویداد CellFormatting می تونین اینطوری بنویسین :



void radGridView1_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.Column.Name == "name"
&& !string.IsNullOrEmpty(e.Row.Cells["name"].Value.ToString())
&& e.Row.Cells["name"].Value.ToString()=="احمد")
{
e.CellElement.DrawFill = true;
e.CellElement.BackColor = Color.Red;
e.CellElement.NumberOfColors = 1;
}
else
{
e.CellElement.ResetValue(LightVisualElement.DrawFi llProperty, ValueResetFlags.Local);
e.CellElement.ResetValue(LightVisualElement.BackCo lorProperty, ValueResetFlags.Local);
e.CellElement.ResetValue(LightVisualElement.Number OfColorsProperty, ValueResetFlags.Local);
}
}
باسلام
وتشکر
حال اگر بخواهیم بجای یک ستون یک ردیف را رنگی کنیم باید چه کدی بنویسیم

khokhan
یک شنبه 13 دی 1394, 16:50 عصر
باسلام
وتشکر
حال اگر بخواهیم بجای یک ستون یک ردیف را رنگی کنیم باید چه کدی بنویسیم


همون کد قبلی رو می تونی یه خورده تغییر بدی ...............................

ویا اینکه اینطوری بنویسی :


private void radGridView1_ViewRowFormatting(object sender, Telerik.WinControls.UI.RowFormattingEventArgs e)
{
if (e.RowElement.RowInfo.Cells["name"].Value != null)
{
if (e.RowElement.RowInfo.Cells["name"].Value=="مهوش")
{
e.RowElement.BackColor = Color.Red;
e.RowElement.DrawFill = true;
}
else
{
e.RowElement.BackColor = Color.Green;
e.RowElement.DrawFill = true;
}
}
}

Iran58
یک شنبه 13 دی 1394, 17:35 عصر
همون کد قبلی رو می تونی یه خورده تغییر بدی ...............................

ویا اینکه اینطوری بنویسی :


private void radGridView1_ViewRowFormatting(object sender, Telerik.WinControls.UI.RowFormattingEventArgs e)
{
if (e.RowElement.RowInfo.Cells["name"].Value != null)
{
if (e.RowElement.RowInfo.Cells["name"].Value=="مهوش")
{
e.RowElement.BackColor = Color.Red;
e.RowElement.DrawFill = true;
}
else
{
e.RowElement.BackColor = Color.Green;
e.RowElement.DrawFill = true;
}
}
}
سلام
private void dgRepresentative_ViewRowFormatting(object sender, Telerik.WinControls.UI.RowFormattingEventArgs e)
{



if (e.RowElement.RowInfo.Cells["License"].Value != null)
{
if (e.RowElement.RowInfo.Cells["License"].Value != "مجاز")
{
e.RowElement.BackColor = Color.Red;
e.RowElement.DrawFill = true;
}
else
{
e.RowElement.BackColor = Color.Green;
e.RowElement.DrawFill = true;
}
}


}
من کد بالا را نوشته ام اما همه ردیفها را قرمز نمایش می دهد؟؟؟؟
لطفا رسیدگی کنید
چون متن غیز مجاز هم وجود دارد
باسپاس

Iran58
یک شنبه 13 دی 1394, 17:38 عصر
همون کد قبلی رو می تونی یه خورده تغییر بدی ...............................

ویا اینکه اینطوری بنویسی :


private void radGridView1_ViewRowFormatting(object sender, Telerik.WinControls.UI.RowFormattingEventArgs e)
{
if (e.RowElement.RowInfo.Cells["name"].Value != null)
{
if (e.RowElement.RowInfo.Cells["name"].Value=="مهوش")
{
e.RowElement.BackColor = Color.Red;
e.RowElement.DrawFill = true;
}
else
{
e.RowElement.BackColor = Color.Green;
e.RowElement.DrawFill = true;
}
}
}
سلام

private void dgRepresentative_ViewRowFormatting(object sender, Telerik.WinControls.UI.RowFormattingEventArgs e)

{







if (e.RowElement.RowInfo.Cells["License"].Value != null)

{

if (e.RowElement.RowInfo.Cells["License"].Value != "مجاز")

{

e.RowElement.BackColor = Color.Red;

e.RowElement.DrawFill = true;

}

else

{

e.RowElement.BackColor = Color.Green;

e.RowElement.DrawFill = true;

}

}





}

من کد بالا را نوشته ام اما همه ردیفها را قرمز نمایش می دهد؟؟؟؟
لطفا رسیدگی کنید
چون متن غیز مجاز هم وجود دارد
باسپاس

khokhan
یک شنبه 13 دی 1394, 19:21 عصر
سلام

من کد بالا را نوشته ام اما همه ردیفها را قرمز نمایش می دهد؟؟؟؟
لطفا رسیدگی کنید
چون متن غیز مجاز هم وجود دارد
باسپاس

اینو امتحان کن :


private void radGridView1_RowFormatting(object sender, RowFormattingEventArgs e)
{
if (e.RowElement.RowInfo.Cells["name"].Value i= "مجاز")
{
e.RowElement.DrawFill = true;
e.RowElement.GradientStyle = GradientStyles.Solid;
e.RowElement.BackColor = Color.Aqua;
}
else
{
e.RowElement.ResetValue(LightVisualElement.BackCol orProperty, ValueResetFlags.Local);
e.RowElement.ResetValue(LightVisualElement.Gradien tStyleProperty, ValueResetFlags.Local);
e.RowElement.ResetValue(LightVisualElement.DrawFil lProperty, ValueResetFlags.Local);
}
}

Iran58
یک شنبه 13 دی 1394, 19:42 عصر
اینو امتحان کن :


private void radGridView1_RowFormatting(object sender, RowFormattingEventArgs e)
{
if (e.RowElement.RowInfo.Cells["name"].Value i= "مجاز")
{
e.RowElement.DrawFill = true;
e.RowElement.GradientStyle = GradientStyles.Solid;
e.RowElement.BackColor = Color.Aqua;
}
else
{
e.RowElement.ResetValue(LightVisualElement.BackCol orProperty, ValueResetFlags.Local);
e.RowElement.ResetValue(LightVisualElement.Gradien tStyleProperty, ValueResetFlags.Local);
e.RowElement.ResetValue(LightVisualElement.DrawFil lProperty, ValueResetFlags.Local);
}
}
باسلام

برای

e.RowElement.GradientStyle = GradientStyles.Solid;
ارور زیر را میگیرد
The name 'GradientStyles' does not exist in the current context

khokhan
یک شنبه 13 دی 1394, 20:03 عصر
باسلام

برای

e.RowElement.GradientStyle = GradientStyles.Solid;
ارور زیر را میگیرد
The name 'GradientStyles' does not exist in the current context

اون خط نسبت به چیزی که شما دنبالش هستین ارتباطی نداره ..... کامند بگیر یا اینکه اصلا پاکش کن

Iran58
پنج شنبه 01 بهمن 1394, 14:55 عصر
سلام
باتشکر مشکل اولم حل شد حالا سوال دیگرم این است که چگونه می توانم روی هرسری کلیک کردم رنگ آن سطر تغییر کند

khokhan
یک شنبه 04 بهمن 1394, 17:23 عصر
سلام
باتشکر مشکل اولم حل شد حالا سوال دیگرم این است که چگونه می توانم روی هرسری کلیک کردم رنگ آن سطر تغییر کند
اولا اینکه می تونی در پراپرتی های گرید تلریک یه رنگ خاص برای ردیف انتخاب شده قرار بدی

اما اگه دوست داری با کد نویسی این کار رو بکنی ......... چند تا راه به نظرم می رسه ......... یکی اینکه :

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


void radGridView1_CurrentRowChanged(object sender, CurrentRowChangedEventArgs e)
{
e.CurrentRow.Tag = "Selected";
}

حالا می تونی اون اطلاعات رو مورد استفاده قرار بدی و در رویداد RowFormatting کار رو یکسره کنی :


void radGridView1_RowFormatting(object sender, RowFormattingEventArgs e)
{
if (e.RowElement.RowInfo.Tag == "Selected")
{
e.RowElement.BackColor = Color.Lime;
e.RowElement.DrawFill = true;
}
else
{
e.RowElement.ResetValue(LightVisualElement.BackCol orProperty, ValueResetFlags.Local);
e.RowElement.ResetValue(LightVisualElement.DrawFil lProperty, ValueResetFlags.Local);
}
}

************************************************** ************************************************** *************************

اما اگه مثل من بطور وحشت انگیزی راحت طلب هستین از یه راه میانبر استفاده می کنین و البته ممکنه بعدا براتون درد سر بشه
اینطوری :


void radGridView1_RowFormatting(object sender, RowFormattingEventArgs e)
{
if (e.RowElement.IsSelected)
{
e.RowElement.BackColor = Color.Red;
}
else
{
e.RowElement.ResetValue(LightVisualElement.BackCol orProperty, Telerik.WinControls.ValueResetFlags.Local);
}
}

AmiN0012
دوشنبه 05 بهمن 1394, 08:49 صبح
سلام.به رویداد نوشته شده توجه کن.
به جای عدد 1،عدد ستون مورد نظرتو بزار

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString().Contains("احمد"))
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;


}