2012-07-08 31 views
1

我寫了下面的代碼,基於Telerik的例子:Telerik的radcombobox控件「OnClientTextChange」事件不會觸發

<telerik:RadComboBox ID="rcbPageSize" 
runat="Server" 
skin="Gray" 
AllowCustomText="true" 
Style="float:right; margin-left: 5px;" 
Width="60px" 
OnClientTextChange = "PageSizeChanged" 
OnClientSelectedIndexChange = "PageSizeChanged"> 

<Items> 
    <telerik:RadComboBoxItem runat="Server" Text="10" Value="10" /> 
    <telerik:RadComboBoxItem runat="Server" Text="20" Value="20" Selected="true" /> 
    <telerik:RadComboBoxItem runat="Server" Text="50" Value="50" /> 
    <telerik:RadComboBoxItem runat="Server" Text="150" Value="150" /> 
    <telerik:RadComboBoxItem runat="Server" Text="250" Value="250" /> 
</Items> 

</telerik:RadComboBox> 


<telerik:RadCodeBlock ID="rcb" runat="server"> 

<script type="text/javascript"> 

    function PageSizeChanged(sender, eventArgs) { 

     alert("You typed " + sender.get_text()); 

    } 

</script> 
</telerik:RadCodeBlock> 

當我改變選擇,功能「PageSizeChanged」之稱,但是當我改變通過在組合框內鍵入文本,該功能從未被調用。

任何人有一個建議,爲什麼? 謝謝, Inbal。

回答

1

我覺得這絕對是這個Telerik控件的'特徵'。如果你使用你的代碼,輸入一些東西,按回車鍵,然後點擊事件觸發的方框。

只要按下輸入或只需點擊外部,不要自行啓動。

我正在使用稍微更新版本的Telerik控件,因爲皮膚灰色已被棄用,但我假設它將在您的版本中相同。

-1

您必須設置AutoPostBack =「true」來觸發服務器事件。

<telerik:RadComboBox ID="rcbPageSize" 
AutoPostBack="true" 
runat="Server" 
skin="Gray" 
AllowCustomText="true" 
Style="float:right; margin-left: 5px;" 
Width="60px" 
OnClientTextChange = "PageSizeChanged" 
OnClientSelectedIndexChange = "PageSizeChanged"> 
+0

這不是服務器端事件,而是客戶端! 「onClientTextChange」 – 2015-05-21 12:01:14

+0

對不起,我的壞。您的代碼中存在拼寫錯誤。事件的名稱是 OnClientSelectedIndexChanged不OnClientSelectedIndexChange 和是的OnClientTextChange將被激發後,您按Enter鍵或關閉組合。 也許你可以使用OnClientKeyPressing事件,它會在你每按一次鍵後觸發 – Hristo 2015-06-03 12:00:23