1

実行時に RepositoryItemLookUpEdit を追加した Xtragrid を作成しましたが、View.AddNewRow(); を使用して新しい行を追加すると問題が発生します。空のセルを含む新しい行が追加されます。したがって、新しく作成された行に RepositoryItemLookUpEdit を追加する必要があります。体は私を助けることができますか?

4

4 に答える 4

1

同じ問題がありました。BindingList などの IBindingList を実装するデータソースを使用し、AllowNew = trueを設定する必要があります。

于 2013-03-14T15:35:51.630 に答える
0

Private Sub grdInvoice_EditorKeyDown (ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) grdInvoice.EditorKeyDown を処理します

    Dim dt As New DataTable
    Dim dr As DataRow
    Dim i As Integer

    With GridView1
        .OptionsNavigation.EnterMoveNextColumn = True
        If e.KeyData = "13" Or e.KeyData = "9" Then
            If .FocusedRowHandle.ToString = .RowCount - 1 Then
                If .FocusedColumn Is .Columns("Rate") Then
                    If .GetRowCellValue(.RowCount - 1, "Qty") <> "0" And .GetRowCellValue(.RowCount - 1, "Rate") <> "0" And .GetRowCellValue(.RowCount - 1, "ItemCode") <> "" Then
                        dt.Columns.Add("No")
                        dt.Columns.Add("ItemCode")
                        dt.Columns.Add("ItemName")
                        dt.Columns.Add("Qty")
                        dt.Columns.Add("Rate")
                        dt.Columns.Add("Amount")
                        dt.Columns.Add("Unit")
                        For i = 0 To .RowCount - 1
                            dr = dt.NewRow
                            dr("No") = .GetRowCellValue(i, "No")
                            dr("ItemCode") = .GetRowCellValue(i, "ItemCode")
                            dr("ItemName") = .GetRowCellValue(i, "ItemName")
                            dr("Rate") = .GetRowCellValue(i, "Rate")
                            dr("Qty") = .GetRowCellValue(i, "Qty")
                            dr("Amount") = .GetRowCellValue(i, "Amount")
                            dr("Unit") = .GetRowCellValue(i, "Unit")
                            dt.Rows.Add(dr)
                        Next
                        dr = dt.NewRow
                        dr("No") = .GetRowCellValue(i - 1, "No") + 1
                        dr("ItemCode") = ""
                        dr("ItemName") = ""
                        dr("Rate") = "0"
                        dr("Qty") = "0"
                        dr("Amount") = "0"
                        dr("Unit") = ""
                        dt.Rows.Add(dr)
                        grdInvoice.DataSource = dt
                        .FocusedRowHandle = i
                        .FocusedColumn = .Columns("ItemCode")
                    End If
                End If

            End If
        End If
    End With
于 2015-03-23T21:10:31.510 に答える
0

データをどこにバインドしますか?

次の例を実装して、問題がどこから始まるかを確認することをお勧めしますか? フォーム上のグリッドとボタンから始めます。デザイナーでリポジトリ アイテムを作成しました

private void Form1_Load(object sender, EventArgs e)
{
    DataTable dt = new DataTable("newTable");
    dt.Columns.Add("1", typeof(Int32));
    dt.Columns.Add("2", typeof(bool));
    dt.Columns.Add("3", typeof(Int32));

    dt.Rows.Add(1, true, 12);
    dt.Rows.Add(2, false, 32);
    dt.Rows.Add(3, true, 42);

    gridControl1.DataSource = dt;

    gridView1.Columns[0].ColumnEdit = repositoryItemCheckEdit1;
}

private void button1_Click(object sender, EventArgs e)
{
    gridView1.AddNewRow();
}

1列目にリポジトリアイテムを含む新しい行を追加します:)

于 2013-01-03T11:41:05.463 に答える
0

私は常にデータ ソースにもう 1 つの項目を追加します。次に例を示します。

   private void AgregarDetalle_Click(object sender, EventArgs e) {
            var list = GridOpcionDetalle.DataSource as List<DetalleOpcion>;
            list.Add(new DetalleOpcion());

            GridOpcionDetalle.DataSource = list;
            GridOpcionDetalle.RefreshDataSource();
        }
于 2013-06-01T23:35:20.543 に答える