2013-01-11 72 views
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>" 

回答

2

布魯斯裏面 - 就像我寄給你的姓名選取器的自定義控制,您可以使用腳本塊表面組件的ID,你需要:

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

然後,在客戶端的JavaScript可以引用變量:

dojo.byId(lastSelected).value = namesSelected 
+0

謝謝我會去看看。如果你同時在你的表格上有更多的CC,會發生什麼?他們都不會使用lastSelected? –

+0

不,他們是自我包含在該自定義控件中。 –

+0

我的cs腳本函數也應該在塊中?如果我這樣做,不使用擴展頁面數據庫然後它工作正常。如果我把我的cc放在一個對話框中,那麼它會失敗,似乎找不到這個函數。 –