积极答复者
bindingsource不能将外部对象添加到此列表?

问题
-
一个窗体,主细表结构,分别用bindingsource绑定,主表新增时,在addingNew事件初始化一些数据,比如单据号、单据状态等。主表初始化完成后添加子表。运行正常。后来加了一个筛选功能,然而把过滤条件给了主表的bindingsource后发现新增出问题了,老是提示“不能将外部对象添加到此列表”,也就是说,当主表进行了筛选后,哪怕筛选的结果还是一条数据不少的情况下,再添加新表单时就会出问题,就会提示“不能将外部对象添加到此列表”,谁是外部对象?难道经过筛选后,datarowview发生变化了?
部分代码如下:Private Sub AddNewBill_Click(sender As System.Object, e As System.EventArgs) Handles AddNewBill.Click If btnSave.Enabled Then
MsgBox("未保存当前单据,请先保存后再新增。", MsgBoxStyle.Exclamation)
Else
bsMain.AddNew() '这里在执行完addingNew后会提示“不能将外部对象添加到此列表”
End If
End Sub
Private Sub bsMain_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles bsMain.AddingNew
blnAddNew = True
'设置初始值
e.NewObject =GetBillDefault(bsMain)
bsMain.MoveLast()
bsMain.EndEdit()
AddDetailRow()
bsDetail.Sort = "In_Line"
'执行很正常,没出任何提示
End Sub
Private Function GetBillDefault(ByVal Bs As BindingSource) As Object
Dim Dv As DataView = CType(Bs.List, DataView)
Dim R As DataRowView = Dv.AddNew()
R.Row.Item("in_id") = MyBillControl.GetBillSN()
R.Row("In_Type") = BillType
R.Row("Oper") = ClientUser.UserId
R.Row("stat") = 0
Return R
End Function
陈锦巍
陈锦巍
答案
-
Hi ,
请把PrivateFunction GetBillDefault(ByVal BsAs BindingSource)As Object
改成PrivateFunction GetBillDefault(ByRef BsAs BindingSource)As Object 再试试。Best regards
Mike Feng [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Mike FengModerator 2011年7月1日 10:52
全部回复
-
Hi ,
请把PrivateFunction GetBillDefault(ByVal BsAs BindingSource)As Object
改成PrivateFunction GetBillDefault(ByRef BsAs BindingSource)As Object 再试试。Best regards
Mike Feng [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Mike FengModerator 2011年7月1日 10:52