2010-05-20 4 views
1

새로 추가 된 행을 제외하고 각 행에서 몇 개의 열을 비활성화해야하는 상황에 처해 있습니다.Infragistics UltraWinGrid의 특정 열 만들기 읽기 전용

즉, 그리드에 10 개의 열이 있고 첫 번째 3 개의 열은 데이터 바인딩되어 있으며 데이터베이스에서 비활성화되었거나 읽기 전용으로 제공됩니다. 나머지는 편집 가능합니다.

새 행을 추가하면 저장 될 때까지 새 행의 모든 ​​열을 활성화해야합니다.

기존 행 또는 새 행에 대한 DataKey 또는 기본 키가 없습니다. IsNewRow과 같은 부울 값을 확인해야합니다. 내 현재 시나리오에서

는이 코드 블록을 사용하고 있습니다 :

Private Sub dgTimeSheet_InitializeRow(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeRowEventArgs) Handles dgTimeSheet.InitializeRow 

    ''if either column key is Project, Class or Milestone 

    '' Activation.NoEdit = Disable and Activation.AllowEdit = Enable 

    Dim index As Integer = e.Row.Index 

    If e.Row.IsAddRow Then 

     dgTimeSheet.Rows(index).Cells(PROJECT).Activation = Activation.AllowEdit 

     dgTimeSheet.Rows(index).Cells(SERVICE_ISSUE_CLASS).Activation = Activation.AllowEdit 

     dgTimeSheet.Rows(index).Cells(MILESTONE).Activation = Activation.AllowEdit 

    Else 

     dgTimeSheet.Rows(index).Cells(PROJECT).Activation = Activation.NoEdit 

     dgTimeSheet.Rows(index).Cells(SERVICE_ISSUE_CLASS).Activation = Activation.NoEdit 

     dgTimeSheet.Rows(index).Cells(MILESTONE).Activation = Activation.NoEdit 


    End If 

    CheckRows() 

End Sub 

문제는 내가 장애인/읽기 전용 행을 클릭하면, 다음 새로 추가 된 행이 또한 내가하지 않는, 장애인 얻을 수 있다는 것입니다 필요.

답변

1

나는 C#에서 비슷한 문제로 싸우고 있습니다. 어둠 속에서 낚시하고 있습니다 ... 당신의 경우에는 행이 되돌아 가지 않도록하기 위해 IgnoreRowColActivation = true 문을 추가 할 수 있습니까?

0

이 예는 고객이 세 개의 열이있는 행에 대해

예를 사용하는 인터페이스에 대해서만 열을 읽어 만듭니다. 두 열을 읽기 전용으로 설정하고 세 번째 열을 사용자에게 편집 가능으로 설정하십시오.

디자이너에 정의 된 세 열 : System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;

세트 열 1 &이 직접

this.dataGridViewTextBoxColumn1.ReadOnly = true 
this.dataGridViewTextBoxColumn2.ReadOnly = true 

는 여전히 소스 코드에서 모든 열을 업데이트 할 수 있습니다. 고객은 세 번째 열만 편집 할 수 있습니다.