0

我正在使用一些计算字段和重复控件显示一个 HTML 列表框。它工作得很好,包括一个分页列表框选择的寻呼机。

现在我想要列表框的 onclick 事件。客户端点击事件需要填充一个字段。我的点击事件工作正常,但我不知道如何获得该字段的句柄。

在设计器中的客户端单击事件中,我可以简单地执行以下操作: document.getElementById("#{id:lastSelected}").value = namesSelected;

但这似乎对我不起作用,因为我并没有真正通过设计师,所以 #{id:lastSelected} 定义不正确?

无论如何我可以让我的选项行可点击,以便我可以通过设计器添加事件?

或者是否有某种方式可以在我的客户端javascript中以我的方式解决“#{id:lastSelected}”?也许调用 XSP 函数?

这是创建列表框第一部分的计算字段,请注意我是如何执行 onclick 事件的。

 var id = "id='" + getClientId("searched") +"ListBox'";     //Generate a unique id for the list box using the computed field name   
 var size= "size=" + compositeData.listBoxSize.toString();  
 var style = "style='width:275px;'";
 var multi = (compositeData.multipleSelect==true) ? "multiple" : ""     
 return "<select " +id + " " + size + " " + style + " " + multi + " onclick='searchedListBoxSingleLeftClick();'>";

这是我计算每个选项行的方法,这个计算字段在重复控件内

 var name = rowData.getColumnValues()[1]; 
 return "<option " + " id='" + rowData + "' value='" + rowData.getUniversalID() + "'>" + name + "</option>"
4

1 回答 1

2

Bruce - 就像我发送给您的 Name Picker 自定义控件一样,您可以使用 scriptBlock 来显示您需要的组件的 id:

var lastSelected = "#{id:lastSelected}";

然后,在您的客户端 javascript 中,您可以引用该变量:

dojo.byId(lastSelected).value = namesSelected
于 2013-01-11T17:16:58.330 回答