2014-12-24 6 views
-1

Winforms 응용 프로그램과 Telerik GridView이 있습니다.GridView 사용자 지정 셀 만들기

내가 정의 사용자 정의 세포를 만드는 달성하고 Cell GridViewPregressBar 그래서 내가 그렇게하는 방법을 설명하지만 난 아주 새로운 개발자 오전부터이 날을 위해이를 사용하는 방법을 이해하기 어렵다 this 튜토리얼을 발견 추가 할 모든 이것을 구현하십시오.

나는이 두 클래스를 만듭니다 : ProgressBarCellElementProgressBarColumn 그래서 내가 도와 줄 수 있는지 물어보십시오. 이런 종류의 질문을하는 것이 일반적이지는 않지만 모든 방법을 사용할 수 있었지만 여전히 사용법을 모를 수 있다는 것을 알고 있습니다.

는 업데이트 :

내가 (작동하지 않는) 시도 무슨이 운영 체제 :

private void radGridView1_CreateCell(object sender, GridViewCreateCellEventArgs e) 
{ 
    if (e.CellType == typeof(GridDataCellElement)) 
    { 
     GridViewDataColumn dataColumn = e.Column as GridViewDataColumn; 
     if (dataColumn.UniqueName == "Progress") 
     { 
      e.CellType = typeof(ProgressBarColumn); 
     } 
    } 
} 
+0

내가 이미했지만 그들이 대답 할 때까지 때로는 며칠이 걸릴은 어떤 식 으로든이 코드 예제를 사용하는 방법 만 질문하고 난 아주 새로운 개발자 오전부터 내가 언급으로 나를 –

+0

그렇게하기가 어렵다 자신의 의견을 게시하고 게시 된 코드와 관련된 특정 질문으로 다시 방문해보십시오. – MikeG

+0

예를 들어이 클래스를 2 개만 만들었지 만, 정규식으로 GridView에 항목을 추가하면 ProgressBar가 전혀 표시되지 않습니다. –

답변

0

다음은 예입니다. 이것은 주요 양식입니다.

Public Partial Class Form1 
Inherits Form 

Private radGridView1 As RadGridView 
Public Sub New() 
    InitializeComponent() 

    radGridView1 = New RadGridView() 
    Me.Controls.Add(radGridView1) 
    radGridView1.Dock = DockStyle.Fill 

    Dim textCol As New GridViewTextBoxColumn("Name") 
    radGridView1.Columns.Add(textCol) 

    Dim ageCol As New GridViewDecimalColumn("Age") 
    radGridView1.Columns.Add(ageCol) 

    Dim prgsCol As New ProgressBarColumn("Progress") 
    radGridView1.Columns.Add(prgsCol) 

    radGridView1.Rows.Add("Steve", 21, 15) 
    radGridView1.Rows.Add("John", 43, 90) 

    radGridView1.Rows.Add("Mike", 23, 66) 
End Sub 
End Class 

이것은 진행 표시 줄 셀입니다.

Class ProgressBarCellElement 
Inherits GridDataCellElement 
Private radProgressBarElement As RadProgressBarElement 

Public Sub New(column As GridViewColumn, row As GridRowElement) 
    MyBase.New(column, row) 
End Sub 

Protected Overrides Sub CreateChildElements() 
    MyBase.CreateChildElements() 

    radProgressBarElement = New RadProgressBarElement() 
    Me.Children.Add(radProgressBarElement) 
End Sub 

Protected Overrides Sub SetContentCore(value As Object) 
    If Me.Value IsNot Nothing AndAlso Me.Value <> DBNull.Value Then 
     Me.radProgressBarElement.Value1 = Convert.ToInt32(Me.Value) 
    End If 
End Sub 

Protected Overrides ReadOnly Property ThemeEffectiveType() As Type 
    Get 
     Return GetType(GridDataCellElement) 
    End Get 
End Property 

Public Overrides Function IsCompatible(data As GridViewColumn, context As Object) As Boolean 
    Return TypeOf data Is ProgressBarColumn AndAlso TypeOf context Is GridDataRowElement 
End Function 
End Class 

그리고 이것은 진행률 표시 줄입니다.

Public Class ProgressBarColumn 
Inherits GridViewDataColumn 
Public Sub New(fieldName As String) 
    MyBase.New(fieldName) 
End Sub 

Public Overrides Function GetCellType(row As GridViewRowInfo) As Type 
    If TypeOf row Is GridViewDataRowInfo Then 
     Return GetType(ProgressBarCellElement) 
    End If 
    Return MyBase.GetCellType(row) 
End Function 
End Class 
관련 문제