2009-03-28 1 views
1

Windows 모바일 응용 프로그램을 개발 중입니다. 그리드의 데이터 테이블에 12 열 중 2 열만 표시하려면 어떻게합니까?DataGrid 행/열 필터링

또한 Windows Mobile DataGrid에서 행을 삭제할 수 있습니까?

샘플 코드를 제공해주십시오.


안녕 StartClass0830, 답장을 보내

감사합니다, 나는 특정을 표시해야의 모바일 응용 프로그램이 dtNewOrder 테이블 (11 개) 열을 포함하는 창에서 생각한, 내 그리드의 열을 제거하지 않으 dtNewOrder에서 DataGrid로 필드.

또 다른 질문은 데이터 격자에 10 개의 행이 포함되어있어 그리드의 특정 행을 삭제하는 방법입니다.

샘플 코드를 알려주세요. 며칠 동안이 문제로 고생하고 있습니다.

Imports System.Data 
Imports System.Text 
Imports System.IO 
Imports System.Data.SqlServerCe 

Dim dtCustomerName As DataTable 
Dim dtNewOrder As DataTable 
Dim _objDataAccess As New DataAccess 

Private Sub NewOrder_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

     dtNewOrder = CreateNewOrderDataTable() 
End Sub 

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 
    AddNewOrderMember(dtNewOrder) 
End Sub 

Private Sub AddNewOrderMember(ByVal dtNewOrder As DataTable) 
     Try 
      Dim NewOrderMemberRow As DataRow = dtNewOrder.NewRow() 
      NewOrderMemberRow("OrderID") = System.Guid.NewGuid() 
      NewOrderMemberRow("SalesPersonID") = "123" 
      NewOrderMemberRow("CustomerGroupID") = ddlCutomerGroup.SelectedValue.ToString() 
      NewOrderMemberRow("CustomerID") = ddlCustomerName.SelectedValue.ToString() 
      NewOrderMemberRow("CustomerItemCode") = "123" 
      NewOrderMemberRow("Category") = "Dummy Category" 
      'NewOrderMemberRow("Description") = "Dummy Des" 
      NewOrderMemberRow("OrderUnit") = "Each" 
      NewOrderMemberRow("OrderQuantity") = txtOrderQuantity.Text 
      NewOrderMemberRow("UnitPrice") = "123" 
      NewOrderMemberRow("TotalAmount") = "30000" 
      dtNewOrder.Rows.Add(NewOrderMemberRow) 
      dtNewOrder.AcceptChanges() 

      If dtNewOrder.Rows.Count > 0 Then 
       dgNewOrder.DataSource = dtNewOrder 
      End If 

     Catch ex As Exception 
      MessageBox.Show(ex.Message, "Mobile Retail Merchandising", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) 
     End Try 
    End Sub 


Private Function CreateNewOrderDataTable() As DataTable 

     dtNewOrder = New DataTable("NewOrder") 
     Try 
      dtNewOrder.Columns.Add(New DataColumn("OrderID", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("SalesPersonID", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("CustomerGroupID", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("CustomerID", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("CustomerItemCode", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("Category", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("Description", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("OrderUnit", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("OrderQuantity", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("UnitPrice", Type.GetType("System.String"))) 
      dtNewOrder.Columns.Add(New DataColumn("TotalAmount", Type.GetType("System.String"))) 

      Dim PrimaryKeyColumns() As DataColumn = New DataColumn(1) {} 
      PrimaryKeyColumns(0) = dtNewOrder.Columns("OrderID") 
      dtNewOrder.PrimaryKey = PrimaryKeyColumns 
      Return dtNewOrder 
     Catch ex As Exception 
      MessageBox.Show(ex.Message, "Mobile Retail Merchandising", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) 
      Return dtNewOrder 
     End Try 
    End Function 

감사 브라이트을

답변

0

귀하의 질문은 다소 문제가있다 : 여기

내가 가진 것입니다. 당신은 귀하의 그리드에서 2 열과 데이터 테이블에 12 열을 언급하고 ROWS를 삭제하고 싶습니다!

나는 ROWS 대신 COLUMNS를 사용합니다. 표에 대한 데이터 바인딩을 수행 할 때 원하는 열을 지정할 수 있습니다. 열을 삭제할 필요가 없습니다.

실제로 ROWS를 의미하는 경우 원치 않는 ROWS가 제거되도록 SQL 또는 LINQ 쿼리를 수정할 수 있습니다.

+0

@ StartClass0830 : FYI, OP가 설명을 올렸습니다. 어느 쪽이 내가 질문에 그것을 옮겼을 때 나는 잘게도 내가 맹 글링하지 않고 있었다. – derobert