我根据 telerik 示例编写了以下代码:
<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",但是当我通过在组合框中键入来更改文本时,该函数永远不会被调用。
有人有建议为什么?谢谢英巴尔。
我发现这绝对是这个 Telerik 控件的"功能"。 如果使用代码,请键入内容,按 Enter 键,然后在将触发事件的框外单击。
只需按回车键或单击外部不会自行触发它。
我正在使用稍新版本的 Telerik 控件,因为皮肤 Gray 已被弃用,但我假设它在您的版本中是相同的。
OnClientTextChange 不会触发,直到用户点击 Enter 或在 RadComboBox 外部单击。在这里这么说:http://www.telerik.com/help/aspnet-ajax/combobox-onclienttextchange.html
设置 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">