如何向datatable添加数据

如何向datatable添加数据,第1张

一、手动添加数据:

添加列和列名

添加行,对行内容添加值

手动打一段代码参考:

DataTable dt=new DataTable()

dt.columns.add("Column 1")    //添加列1

dt.columns.add("Column 2")    //添加列2

dt.rows.add()    //添加一行空行

dt.rows[0][0]=1.1    //对第1行第1列赋值

dt.rows[0][1]=1.2    //对第1行第2列赋值

dt.rows[1][0]=2.1    //对第2行第1列赋值

dt.rows[1][1]=2.2    //对第2行第2列赋值

二、通过数据库查找结果赋值

网上示例有很多,手动打比较费时

你的datagridview是直接绑定的DataTable吧!

如果是这样,那你只有在给DataTable赋值的时候先一部插入新的一列

这样你插入的那一列就在最前面,后面从数据库获取的数据就自动追加到了那一列后面

只有这样,你把DataTable绑定到DataGridView的时候,这一列才能在最前面!

首先了解一下JSF中DataTable的渲染方式:DataTable --<Header>UIComponent --<Children>List<HtmlColumn>----<HtmlColumn>------<Header>UIComponent ----<Children>List<UIComponent>因此,要在后台变更DataTable的状态,可以用dt.setHeader(UIComponent)设置DataTable的表头,然后可以往dt.getChildren()中添加HtmlColumn类型的列,同样,列中也可以由Header和Children组成。 代码实现如下:private void initialReportTable(List<ExcelReport>reportList) { dt.getChildren().clear()for (ExcelReport report : reportList) { HtmlColumn column = new HtmlColumn()HtmlOutputText header = new HtmlOutputText()header.setValueExpression("value", getValueExpression("#{rmaReport.captions.c" + report.getPosition() + "}"))column.setHeader(header)HtmlOutputText value = new HtmlOutputText()String ve = getVEString(report)System.out.println(report.getCaption() + " : " + ve)value.setValueExpression("value", getValueExpression(ve))column.getChildren().add(value)dt.getChildren().add(column)} }其中,动态建立控件的方法为直接创建一个控件,然后通过ValueExpression来设置控件在运行时显示的值,如果是Column中的数据,则可以使用#{tableVar.ColumnName}格式的EL表达式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11754909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存