0
RadInputPrompt.Show("Enter the number", MessageBoxButtons.OK, message, InputMode.Text, textBoxStyle, closedHandler: (arg) =>
{
    int okButton = arg.ButtonIndex;
    if (okButton == 0) 
    {

          //do some check before submit
          if (string.IsNullOrEmpty(arg.Text))
          {
               MessageBox.Show("Please input the number.");
               return; //??
          }

          //submit
    }
    else
    {
        return;
    }
});

我的问题是:我在提交之前进行了一些数据验证(例如:仅数字,数字计数......)

如果来自用户的输入无效,我希望提示输入屏幕仍然可以保留。
如果我使用“return”关键字,它会回到主屏幕。

或者是否有任何其他验证方式(类似于 AJAX?)我可以在此提示界面上使用,而不是在代码隐藏页面上使用?

非常感谢!

4

1 回答 1

0

一种技术是在每次用户单击“确定”时保持循环并显示输入提示,但无法满足输入验证。您可以在下面看到一个示例,如果结果不是有效的数值,输入文本框会继续重复。

向用户添加某种反馈也是一个好主意,表明在无效提交的情况下先前的输入是不可接受的。下面是一个示例,其中输入文本框的标题在第一次无效提交后更改为包含指示输入值必须是有效数字的文本。

注意: Telerik 说现在应该使用 ShowAsync 方法而不是 Show 方法,因为它已被弃用。

        string userInput = string.Empty;
        int okButton = 0;
        bool firstPass = true;
        double numericResult;

        while (okButton.Equals(0) && string.IsNullOrWhiteSpace(userInput))
        {
            string inputBoxTitle = (!firstPass) ? "Enter the number (you must enter a valid number)" : "Enter the number";

            InputPromptClosedEventArgs args = await RadInputPrompt.ShowAsync(inputBoxTitle, MessageBoxButtons.OKCancel);
            okButton = args.ButtonIndex;
            firstPass = false;

            if (okButton.Equals(0))
            {
                if (!string.IsNullOrWhiteSpace(args.Text))
                {
                    bool isNumeric = double.TryParse(args.Text, out numericResult);
                    if (isNumeric)
                    {
                        // We have good data, so assign it so we can get out of this loop
                        userInput = args.Text;
                    }
                }
            }
        }
于 2013-07-06T12:05:16.157 回答