【问题标题】:How to disable manual input in a Telerik RadDatePicker如何在 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 禁用它...
  • 你能用描述解释一下吗?

标签: c# wpf telerik raddatepicker


【解决方案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,您应该一切顺利。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-20
          • 1970-01-01
          相关资源
          最近更新 更多