DataGrid фильтрация строк / столбцов - PullRequest
1 голос
/ 28 марта 2009

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

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

Пожалуйста, предоставьте образец кода.


Привет StartClass0830,

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

И еще один вопрос: сетка данных содержит 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

1 Ответ

0 голосов
/ 28 марта 2009

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

Я так понимаю, вы имеете в виду КОЛОННЫ вместо РЯДОВ. Когда вы делаете привязку данных к вашей сетке, вы можете указать, какие столбцы в 12 вы хотите. Нет необходимости удалять столбцы.

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

...