Devexpress 将新行添加到xtragrid视图

Devexpress 将新行添加到xtragrid视图,devexpress,Devexpress,我创建了Xtragrid,在其中我在运行时添加了RepositoryItemLookUpEdit,但问题是当我使用View.AddNewRow()添加新行时;将添加一个带有空单元格的新行。所以我需要在新创建的行中添加RepositoryItemLookUpEdit。有人能帮我吗?数据绑定在哪里 我可以建议您执行以下ex并查看问题的起因吗? 从表格上的网格和按钮开始。我在设计器中创建了存储库项 它在第一列中添加了一个新行,其中包含一个存储库项:)数据绑定到哪里 我可以建议您执行以下ex并查看问题的

我创建了Xtragrid,在其中我在运行时添加了RepositoryItemLookUpEdit,但问题是当我使用View.AddNewRow()添加新行时;将添加一个带有空单元格的新行。所以我需要在新创建的行中添加RepositoryItemLookUpEdit。有人能帮我吗?

数据绑定在哪里

我可以建议您执行以下ex并查看问题的起因吗? 从表格上的网格和按钮开始。我在设计器中创建了存储库项


它在第一列中添加了一个新行,其中包含一个存储库项:)

数据绑定到哪里

我可以建议您执行以下ex并查看问题的起因吗? 从表格上的网格和按钮开始。我在设计器中创建了存储库项


它在第一列中添加了一个新行,其中包含一个存储库项:)

我也遇到了同样的问题。您需要使用实现IBindingList的数据源,例如BindingListset AllowNew=true

我也有同样的问题。您需要使用实现IBindingList的数据源,例如BindingListset AllowNew=true

我总是在数据源中再添加一项,例如:

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

            GridOpcionDetalle.DataSource = list;
            GridOpcionDetalle.RefreshDataSource();
        }
private void agregardallle\u单击(对象发送者,事件参数){
var list=gridopciondelle.DataSource作为列表;
添加(新的DetalleOpcion());
GridOpcionDetalle.DataSource=list;
RefreshDataSource();
}

我总是在数据源中再添加一项,例如:

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

            GridOpcionDetalle.DataSource = list;
            GridOpcionDetalle.RefreshDataSource();
        }
private void agregardallle\u单击(对象发送者,事件参数){
var list=gridopciondelle.DataSource作为列表;
添加(新的DetalleOpcion());
GridOpcionDetalle.DataSource=list;
RefreshDataSource();
}

私有子grdInvoice_editWorkeyDown(ByVal sender作为对象,ByVal e作为System.Windows.Forms.KeyEventArgs)处理grdInvoice.editWorkeyDown

    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
Dim dt作为新数据表
将dr设置为数据行
作为整数的Dim i
使用GridView1
.OptionsNavigation.EnterMoveNextColumn=True
如果e.KeyData=“13”或e.KeyData=“9”,则
如果.FocusedRowHandle.ToString=.RowCount-1,则
如果.FocusedColumn是.Columns(“Rate”),则
如果.GetRowCellValue(.RowCount-1,“数量”)“0”和.GetRowCellValue(.RowCount-1,“比率”)“0”和.GetRowCellValue(.RowCount-1,“项目代码”)”,则
dt.列。添加(“否”)
dt.列。添加(“项目代码”)
dt.列。添加(“项目名称”)
dt.列添加(“数量”)
dt.列。添加(“费率”)
dt.列添加(“金额”)
dt.列。添加(“单位”)
对于i=0到.RowCount-1
dr=dt.NewRow
dr(“No”)=.GetRowCellValue(i,“No”)
dr(“ItemCode”)=.GetRowCellValue(i,“ItemCode”)
dr(“ItemName”)=.GetRowCellValue(i,“ItemName”)
dr(“速率”)=.GetRowCellValue(i,“速率”)
dr(“数量”)=.GetRowCellValue(i,“数量”)
dr(“金额”)=.GetRowCellValue(i,“金额”)
dr(“单位”)=.GetRowCellValue(i,“单位”)
dt.行.添加(dr)
下一个
dr=dt.NewRow
dr(“No”)=.GetRowCellValue(i-1,“No”)+1
dr(“项目代码”)=“”
dr(“项目名称”)=“”
dr(“速率”)=“0”
dr(“数量”)=“0”
dr(“金额”)=“0”
dr(“单位”)=“”
dt.行.添加(dr)
grdInvoice.DataSource=dt
.FocusedRowHandle=i
.FocusedColumn=.Columns(“项目代码”)
如果结束
如果结束
如果结束
如果结束
以

私有子grdInvoice_editWorkeyDown(ByVal sender作为对象,ByVal e作为System.Windows.Forms.KeyEventArgs)处理grdInvoice.editWorkeyDown

    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
Dim dt作为新数据表
将dr设置为数据行
作为整数的Dim i
使用GridView1
.OptionsNavigation.EnterMoveNextColumn=True
如果e.KeyData=“13”或e.KeyData=“9”,则
如果.FocusedRowHandle.ToString=.RowCount-1,则
如果.FocusedColumn是.Columns(“Rate”),则
如果.GetRowCellValue(.RowCount-1,“数量”)“0”和.GetRowCellValue(.RowCount-1,“比率”)“0”和.GetRowCellValue(.RowCount-1,“项目代码”)”,则
dt.列。添加(“否”)
dt.列。添加(“项目代码”)
dt.列。添加(“项目名称”)
dt.列添加(“数量”)
dt.列。添加(“费率”)
dt.列添加(“金额”)
dt.列。添加(“单位”)
对于i=0到.RowCount-1
dr=dt.NewRow
dr(“No”)=.GetRowCellValue(i,“No”)
dr(“ItemCode”)=.GetRowCellValue(i,“ItemCode”)
dr(“ItemName”)=.GetRowCellValue(i,“ItemName”)
dr(“速率”)=.GetRowCellValue(i,“速率”)
dr(“数量”)=.GetRowCellValue(i,“数量”)
dr(“金额”)=.GetRowCellValue(i,“金额”)
dr(“单位”)=.GetRowCellValue(i,“单位”)
dt.行.添加(dr)
下一个
dr=dt.NewRow
dr(“No”)=.GetRowCellValue(i-1,“No”)+1
dr(“项目代码”)=“”