我正在使用一些计算字段和重复控件显示HTML列表框。它工作得很好,包括一个寻呼机,它可以选择列表框。
现在我想要列表框的onclick事件。客户端点击事件需要填充字段。我的点击事件工作正常,但我无法弄清楚如何获得该字段的句柄。
在设计师的客户端点击事件中,我可以简单地执行以下操作: document.getElementById(“#{id:lastSelected}”)。value = namesSelected;
但这对我来说似乎没有用,因为我没有真正通过设计师,所以#{id:lastSelected}定义不正确?
无论如何,我可以让我的选项行可点击,以便我可以通过设计师添加活动吗?
或者在某种程度上,“#{id:lastSelected}”可以在我的客户端javascript中解析我的方式吗?也许叫一个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>"
答案 0 :(得分:2)
Bruce - 就像我发给你的Name Picker自定义控件一样,你可以使用scriptBlock来表示你需要的组件的id:
var lastSelected = "#{id:lastSelected}";
然后,在您的客户端javascript中,您可以引用该变量:
dojo.byId(lastSelected).value = namesSelected