2009-03-28 6 views
1

Я разрабатываю мобильное приложение Windows. Как я могу показать только два столбца из двенадцати в моем datatable в сетке ?.Фильтрация строк/столбцов DataGrid

Кроме того, возможно ли удалять строки в datagrid Windows Mobile?

Просьба указать пример кода.


Привет StartClass0830,

Спасибо за ваш ответ, я не хочу удалить столбцы в моей сетке Допустим, в окнах мобильных приложений таблица dtNewOrder содержит 11 столбцов, мне нужно, чтобы отобразить определенный поля от dtNewOrder до datagrid.

И еще один вопрос: 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 

Благодарности Brite

ответ

0

Ваш вопрос несколько проблематично. Вы упомянули 2 столбца в своей сетке и 12 столбцов в вашем datatable, и вы хотите удалить ROWS!

Полагаю, вы имеете в виду КОЛОНКИ вместо ROWS. Когда вы выполняете привязку данных к своей сетке, вы можете указать, какие столбцы в 12 хотите. Нет необходимости удалять столбцы.

В случае, если вы ДЕЙСТВИТЕЛЬНО означаете ROWS, вы можете изменить свои запросы SQL или LINQ, чтобы удалить эти нежелательные ROWS.

+0

@ StartClass0830: FYI, ОП опубликовал разъяснение. Надеюсь, я не искалечил, когда перевел вопрос. – derobert