cancel
Showing results for 
Search instead for 
Did you mean: 

如何处理没有绑定数据的UI控件

Former Member
0 Kudos
141

一直有一个疑问,就是在UI里面的控件好像必须要和数据库字段绑定了,用户才能做操作,

比如说combox下拉框,我用DataTable做了链接,虽然看到里面有了数据,但是还是不能点出下拉列表来,

然后用userdatasource关联上,可是这样里面的数据都没有了,怎么样来做这种没有关联数据对象的控件呢?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

应该这么说,B1的UI控件必须要和一个DataSource绑定,要么UserDataSource,要么是DBDataSource.

前者和后者区别是是否将控件绑定到非B1数据库数据。

对于ComboBox, 两种绑定方式例子如下:


//UserDataSource
oForm.DataSources.UserDataSources.Add( "CombSource", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 20 );
// bind the Combo Box item to the defined used data source
oComboBox.DataBind.SetBound( true, "", "CombSource" ); 
//u8C03u7528u4EE3u7801u52A0ValidValue
oComboBox.ValidValues.Add( "1", "Combo Value 1" ); 
oComboBox.ValidValues.Add( "2", "Combo Value 2" ); 
oComboBox.ValidValues.Add( "3", "Combo Value 3" );


//DBDataSource
 SAPbouiCOM.DBDataSource    oDBDataSource = oForm.DataSources.DBDataSources.Add("OCRD");
 oDBDataSource.Query(null); //u4E0Du8981u5FD8u8BB0u8C03Query
oComboBox.DataBind.SetBound(true, "OCRD", "CardName"); //u663Eu793ABPu540Du79F0

DBDataSource适合关联到某张表的Form,各个控件(如Edit, ComboBox)各自显示某个字段,还可以通过Offset属性来控制表内记录的Navigation。

此外oComboBox.DataBind.Bind() 还可以绑定到DataTable。

建议进一步参考UI API帮助和SDK Sample.

Answers (1)

Answers (1)

Former Member
0 Kudos

就绑定UserDataSource就可以了.如果是下拉框,不需要绑Datatable,只需要绑定一个UserDataSource.