我認爲答案是價值不存在的客戶端,所以它不能被檢索。有更簡單的方法來獲取索引tho(假設任何初始化完成)。
selected index: $find("<%=cboName.ClientID%>").get_hiddenFieldControl().value;
selected index (again): $find("<%=cboName.ClientID%>").get_selectedIndex();
selected text: $find("<%=cboName.ClientID%>").get_textBoxControl().value;
據我所知,驗證客戶端上的組合框需要索引或文字,或某種形式的服務器端解決辦法的一些信心。
爲了提供一個直接回答主題行,JavaScript陣列可以創建服務器側與各組合框值和由選擇的索引引用然後客戶端...
代碼隱藏:
// write combobox values to asp:literal
foreach (ListItem i in cboName.Items)
litCboValues.Text += "\"" + i.Value.Replace("\"", "\\\"") + "\", ";
litCboValues.Text = litCboValues.Text.TrimEnd(new char[] {',', ' '});
ASPX:
<script>
// array of values
var cboValues = [ <asp:Literal id="litCboValues" runat="server" /> ];
// add an alert to the combobox to test
function pageLoad()
{
$find("<%=cboName.ClientID%>").get_textBoxControl().onblur = function() {
alert(cboValues[$find("<%=cboName.ClientID%>").get_selectedIndex()]);
};
}
</script>
<asp:ComboBox id="cboName" runat="server" ...
謝謝,但你的解決方案不起作用。 ajaxtoolkit的組合框由3個輸入組成。我無法得到這個價值。 – 2010-05-28 18:26:43