سؤال

نحن نستخدم Infragistics الشبكة (على الأرجح سوف يكون الإصدار 8.2 في النهاية) ونحن نريد أن تكوين صف/الخلايا المظاهر "على الطلب" من أجل أن تكون قادرة على تقديم نوع من "مظهر ديناميكي".

على سبيل المثال أنا أريد بعض الخلايا أن يكون أحمر أو أخضر حسب قيمته.ونحن قد ترغب في قرص الخصائص الأخرى وكذلك (الخط, حجم, صورة, الخ).

المكان المثالي للقيام بذلك سيكون من بعض الأحداث التي تحدث قبل خلية يحصل طلاؤها...ولكن يبدو أن هناك لا يوجد مثل هذا الحدث في Infragistics...

أو أنا على خطأ ؟ أي مساعدة ؟

التوضيح: أنا أتحدث عن WinForms Infragistics UltraGrid

هل كانت مفيدة؟

المحلول 3

لدينا أخيرا يأتي مع اثنين من الحلول لتلك المشكلة.

بعض من المحتوى الديناميكي نستخدم الشبكة العناصر والمظهر تهيئة أنه "على الطلب".

بالنسبة للغاية من الموارد الحرجة ظهور نستخدم UltraGrid.DrawFilter (انظر أيضا IUIElementDrawFilter واجهة).

نصائح أخرى

كان علي أن أفعل بالضبط هذا مع IG WebGrid بضع سنوات ، وكان ...نقول ...مؤلمة.ومع ذلك ، فإن WebGrid ميزة واحدة تجعل نقطة -- مرة واحدة HTML ينبعث كنا مجموعة!

للتعامل مع هذا في WinGrid حاولت مجموعة متنوعة من الفعاليات المختلفة ، سواء على الشبكة و البيانات و اجتمع مع الفشل الذريع في كل خطوة على الطريق.الحدث الوحيد لدي عمل كان Paint, التي من المرجح أن تخلق مشكلة الأداء.

بالنسبة Paint, ما اخترق معا.أنا لست فخورا من هذا القانون ، وأنا على الأرجح لن وضعه في الإنتاج ، ولكن هنا هو على أي حال (C#):

private void UltraGrid1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
    foreach (UltraGridRow r in UltraGrid1.Rows)
    {
        foreach (UltraGridCell c in r.Cells)
        {
            if (c.Text == "foo")
                c.Appearance.BackColor = Color.Green;
        }
    }
}

و VB:

Private Sub UltraGrid1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles UltraGrid1.Paint
    For Each r As UltraGridRow In UltraGrid1.Rows
        For Each c As UltraGridCell In r.Cells
            If c.Text = "foo" Then
                c.Appearance.BackColor = Color.Green
            End If
        Next
    Next
End Sub

هناك حدثا.أنا لا أتذكر بالضبط ما يطلق عليه ، ولكن يجب أن يكون شيئا مثل 'DataRowBound' أو 'ItemDataBinding', الخ..

أيضا ، هذه المادة قد تساعد.

غير أن هذا له علاقة مع سؤالك ، ولكن أود البقاء بعيدا عن الاستخدام المكثف Infragistics الضوابط - هم ثقيل جدا و سوف تبطئ الصفحة العملية إلى حد كبير.فقط $0.02.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top