带有元素ID的DWR addRows()

时间:2009-05-13 15:46:37

标签: java ajax dwr

致电所有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的线索,我将非常感激。或者,如果有人知道替代方法,我会很想知道。

亲切的问候

卡尔

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

这段代码真的有效吗?



dwrUtil.addRows(tableBdId, data);




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

  1. id :表格元素的ID(最好是tbody元素);
  2. 数组:数组(或来自DWR 1.1的对象),其中包含更新表中每行的一个条目;
  3. cellfuncs :一组函数(每列一个),用于从传递的行数据中提取单元格数据;
  4. 选项:包含各种选项的对象。
  5. ID 数组 cellfuncs 必需,在您的情况下,您将会是必须传递选项,因为您要自定义行创建并设置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;
    					 }
    				});