الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلق
بدأه ابو السموأل في 19 مايو 2005 · 8 رد · 2,690 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

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

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

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

تم تعديل هذه المشاركة بواسطة ابو السموأل في 19 مايو 2005 في 10:36

#2

نعم..تقدر..كيف؟ هناك عدة طرق منها والشائعه..باستخدام الأحدات 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;
                                                           }
    }
  }

بالتوفيق

techvisio.gif

اللهم انصر إخواننا المجاهدين في كل مكان..

#3

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

شكرا جدا

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#4

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

انا حولت الكود الى 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

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

#5
        Dim Activation As Object

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

        Dim Activation As ٍString

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#6

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

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

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

تم تعديل هذه المشاركة بواسطة ابو السموأل في 20 مايو 2005 في 17:30

#7

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

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#8

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

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)

حظا موفقا

You can fly while you can touch the sky

#9

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

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

هذا الموضوع مغلق.

مواضيع مشابهة