• 0
ابو السموأل

هل استطيع ان اللون كلمة في داتاجريد

سؤال

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

اخواني هل استطيع ان اللون كلمة في داتاجريد وكيف

مثلا لنفرض انا عندي داتاجريد يعرض حقلين اسماء المسجلين والوضع statusهل هم online او offline

بدي عندما اعرض الداتا جريد ان كانstatus هوonline يكون لونها اخضر وان كان offline ان يكون لونها احمر

وجزاكم الله كل خير

تم تعديل بواسطه ابو السموأل
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

8 إجابة على هذا السؤال .

  • 0

نعم..تقدر..كيف؟ هناك عدة طرق منها والشائعه..باستخدام الأحدات Events التي توفرها ال جريد..وهي في هذا..ItemDataBound ..بحيث تقرأ البيانات اثناء عملية bind البيانات الجاية من قاعدة البيانات بالجريد..وهناك في الدالة تقوم بعملية الشرط الي بدك اياها..

الكود:

private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
 {
 if(e.Item.ItemType!=ListItemType.Header && e.Item.ItemType!=ListItemType.Footer)
 {
                                                    string status=System.Web.UI.DataBinder.Eval(e.DataItem,"Status").ToString();
                                                     if(status=="offline")
                                                            {
                                                                 e.Item.Cells[1].ForeColor=Color.Red;
                                                            }
                                                     else
                                                          {
                                                                 e.Item.Cells[1].ForeColor=Color.Green;
                                                          }
   }
 }

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الحقيقة الكود ده جه في وقته

شكرا جدا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله كل خير اخي بسام

انا حولت الكود الى vb لكن يطلعلي error عند تنفيذ الكود

هذا هو الكود

 Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
       Dim Activation As Object
       If (e.Item.ItemType <> ListItemType.Header & e.Item.ItemType <> ListItemType.Footer) Then
           Activation = System.Web.UI.DataBinder.Eval(e.Item.DataItem, "Activation").ToString()

           If (Activation = "False") Then
               e.Item.Cells(1).ForeColor = Color.Red

           End If

           If (Activation = "True") Then

               e.Item.Cells(1).ForeColor = Color.Green
           End If

       End If

   End Sub

لكن عندما يصل السطر التالي

  Activation = System.Web.UI.DataBinder.Eval(e.Item.DataItem, "Activation").ToString()

يعطيني الغلط التالي

Object reference not set to an instance of an object

اين الغلط اخواني

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

        Dim Activation As Object

غير هذا السطر الى

        Dim Activation As ٍString

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا يا اخي انا اصلا كنت حاططها ٍString

بس لما ما زبطت جربت احطها object

يعني على الحالتين مش زابطة

تم تعديل بواسطه ابو السموأل
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا الحقيقة ماجربتهاش بس غريبة انا توقعت ان الكود حيشتغل على العموم ححاول اجرب و ارد عليك :wacko:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قمت بعمل مثال شبيه و قد ظهرت النتيجة أمامي دون مشاكل :

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 {
 string val = (string)DataBinder.Eval(e.Item.DataItem,"FirstName");
 if(e.Item.ItemType == ListItemType.Item
   && e.Item.ItemType != ListItemType.Header
   && val=="Nancy")
   e.Item.Cells[2].ForeColor=Color.Red;
 else
   e.Item.Cells[2].ForeColor=Color.Blue;


 }

بخصوص المتغير val سوف يعيد قيمة الحقل FirstName ليفحصها كل مرة و إن كانت Nancy سوف يلونها باللون الأحمر و باللون الازرق إن لم تكن كذلك ..

طبعا هي ستعيد بيانات من نوع Object و لكن قمت بتحويلها ل string و يمكن ذلك بال VB.NET كالتالي :

Dim  val1 As String = CType(DataBinder.Eval(e.Item.DataItem,"FirstName"),String)

حظا موفقا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله كل خير اخي ابو صلاح زبطتت 100% كان ناقص شغلة الكاستينج وكلو تمام

وجزاك الله كل خير اخي Bassam Basamad دائما مغلبك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .