문제

우리는 Infragistics 그리드를 사용하고 있습니다 (아마도 아마도 8.2 버전이있을 것입니다). 일종의 "동적 모양"을 제공하기 위해 Row/Cells 모양을 "주문형"으로 구성하려고합니다.

예를 들어, 나는 그 값에 따라 일부 셀이 빨간색 또는 녹색이되기를 원합니다. 다른 특성 (글꼴, 크기, 이미지 등)도 조정하고 싶을 수도 있습니다.

셀이 다시 칠되기 전에 일어난 이벤트가 될 수있는 완벽한 장소는 이벤트가 될 것입니다 ... 그러나 Infragistics에는 그러한 사건이없는 것 같습니다 ...

아니면 내가 틀렸어? 도움이 있습니까?

설명: 나는 Winforms Infragistics Ultragrid에 대해 이야기하고 있습니다

도움이 되었습니까?

해결책 3

우리는 마침내 그 문제에 대한 두 가지 해결책을 제시했습니다.

동적 컨텐츠 중 일부의 경우 그리드 요소 모양을 사용하여 "주문형"을 재개합니다.

매우 리소스 크리티컬 모양의 경우 UltraGrid.DrawFilter (IUIelentDrawFilter 인터페이스 참조)를 사용합니다.

다른 팁

나는 몇 년 전에 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