0

召集所有 DWR 大师!

我目前正在使用反向 Ajax 将数据动态添加到网页中的表中。

当我运行以下方法时:

public static void addRows(String tableBdId, String[][] data) {
    Util dwrUtil = new Util(getSessionForPage()); // Get all page sessions
    dwrUtil.addRows(tableBdId, data);
}

根据需要在我的网页中创建新行。

但是,为了稍后更新这些新创建的值,标签需要有一个元素 ID 供我访问。

我查看了 DWR javadoc,您可以指定一些附加选项,请参阅http://directwebremoting.org/dwr/browser/addRows,但这对我来说意义不大,文档非常稀疏。

如果有人能给我一个关于如何为创建的 td 元素指定元素 ID 的线索,我将不胜感激。或者,如果有人知道另一种方法,我很想知道。

亲切的问候

卡尔

4

2 回答 2

0

我能得到的最接近的是传递一些参数来给元素一个id。见下文:

    public static void addRows(String tableBdId, String[] data, String rowId) {

    Util dwrUtil = new Util(getSessionForPage()); // Get all page sessions

    // Create the options, which is needed to add a row ID
    String options = "{" +
            "  rowCreator:function(options) {" +
            "    var row = document.createElement(\"tr\");" +
            "     row.setAttribute('id','" + rowId + "'); " +
                    "    return row;" +
                            "  }," +
            "  cellCreator:function(options) {" +
            "    var td = document.createElement(\"td\");" +
            "    return td;" +
                 "  }," +
            "  escapeHtml:true\"}";


    // Wrap the supplied row into an array to match the API
    String[][] args1 = new String[][] { data };
    dwrUtil.addRows(tableBdId, args1, options);
于 2009-05-15T10:59:41.693 回答
0

你的这行代码真的有效吗?

dwrUtil.addRows(tableBdId, data);

DWR addRows 方法至少需要 4 的 3 个参数才能工作,它们是:

  1. id:表格元素的id(最好是tbody元素);
  2. array:数组(或 DWR 1.1 中的对象),包含更新表中每一行的一个条目;
  3. cellfuncs:一组函数(每列一个),用于从传递的行数据中提取单元格数据;
  4. options:包含各种选项的对象。

idarraycellfuncs必需的,在您的情况下,您还必须传递选项,因为您想自定义行创建并设置 TD id。看看这个:

在 options 参数中,您需要使用一个名为“cellCreator”的参数来告知您自己的方式来创建 td html 元素。看看这个:

// Use the cellFuncs var to set the values you want to display inside the table rows
// the syntax is object.property
// use one function(data) for each property you need to show on your table.
var cellFuncs = [
		         	function(data) { return data.name_of_the_first_object_property ,
		         	function(data) { return data.name_of_the_second_object_property; } 
		         	];											
											
DWRUtil.addRows(
				tableBdId, 
				data, 
				cellFuncs, 
				{
					  // This function is used for you customize the generated td element
					  cellCreator:function(options) {
							var td = document.createElement("td");
							// setting the td element id using the rowIndex
							// just implement your own id bellow
							td.id = options.rowIndex;
							return td;
					 }
				});		

于 2015-10-15T17:00:11.423 回答