如何在 Telerik RadDatePicker 中禁用手动输入
Posted
技术标签:
【中文标题】如何在 Telerik RadDatePicker 中禁用手动输入【英文标题】:How to disable manual input in a Telerik RadDatePicker 【发布时间】:2014-08-02 04:45:13 【问题描述】:我正在使用 Telerik RadDatePicker
,我想禁用用户输入,但他们应该能够从日历中进行选择。
<telerik:RadDatePicker Culture="Binding GetLanguage" x:Name="startDate"
Margin="0,5,0,5" HorizontalAlignment="Left"
VerticalAlignment="Center" Grid.Column="1" TabIndex="2"
MinWidth="120" Width="120" Height="Auto" MaxHeight="25"
KeyDown="filterDate_KeyDown" >
</telerik:RadDatePicker>
我使用了KeyDown
,但没有帮助。
【问题讨论】:
你可以用 jquery 禁用它... 你能用描述解释一下吗? 【参考方案1】:PreviewKeyDown 事件正是针对这类事情而存在的。
private void spacebarHandler_PreviewKeyDown(object sender, KeyEventArgs e)
if (e.Key == Key.Space)
e.Handled = true;
【讨论】:
【参考方案2】:这个问题有一个简单的解决方案。
添加属性EnableTyping="false"
可防止用户键入。
<telerik:RadDatePicker runat="server" ID="rdpPreviousDay" EnableTyping="false"></telerik:RadDatePicker>
【讨论】:
【参考方案3】:订阅KeyDown
事件:
<telerik:RadDatePicker KeyDown="StartDate_OnKeyDown" />
然后“处理”所有键,从而有效地禁止用户输入任何内容:
private void StartDate_OnKeyDown(object sender, KeyEventArgs e)
e.Handled = true;
有趣的是,RadDatePicker
上有一个 IsReadOnly
属性,它禁用了 DatePickerTextBox
并且仍然允许用户查看日历,但不幸的是它也阻止了用户实际制作日历中的选择。它看起来就像您可以选择一个日期,但实际上并没有设置 SelectedDate
属性。
【讨论】:
谢谢,还有什么方法可以让用户无法使用退格键删除当前日期【参考方案4】:设置 IsHitTestVisible=False,问题解决。
<telerik:RadDatePicker
SelectedDate="Binding ValidFrom,Mode=TwoWay" >
<telerik:RadDatePicker.Resources>
<Style TargetType="telerik:RadWatermarkTextBox">
<Setter Property="IsHitTestVisible" Value="False" />
</Style>
</telerik:RadDatePicker.Resources>
【讨论】:
【参考方案5】:有一个属性DateInput-ReadOnly
。将其设置为true
,您应该一切顺利。
【讨论】:
以上是关于如何在 Telerik RadDatePicker 中禁用手动输入的主要内容,如果未能解决你的问题,请参考以下文章
与 DbSelectedDate 相关的 Telerik RadDatePicker 错误
Telerik 中的日期格式问题:RadDatePicker