edit form 里的数字验证2

来源:互联网 发布:php源码 编辑:程序博客网 时间:2024/06/07 19:28

 protected void RadGrid2_ItemCreated(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridEditableItem && e.Item.IsInEditMode)
        {
            var item = e.Item as GridEditableItem;
            string[] weekday = {"mon", "tue", "wed", "thu", "fri", "sat", "sun"};
            var editor = new GridTextBoxColumnEditor[7];
            var cell = new TableCell[7];

            var validator = new RegularExpressionValidator[7];
            for (int i = 0; i < 7; i++)
            {
                editor[i] = (GridTextBoxColumnEditor) item.EditManager.GetColumnEditor(weekday[i]);
                editor[i].TextBoxControl.ID = i.ToString();
                cell[i] = (TableCell) editor[i].TextBoxControl.Parent;
                validator[i] = new RegularExpressionValidator
                                   {
                                       ValidationExpression = @"^[1-9]/d*|0$",
                                       ErrorMessage = "<span style='color:red;font-size:12px'> Please input a number!",
                                       ControlToValidate = editor[i].TextBoxControl.ID
                                   };
                cell[i].Controls.Add(validator[i]);
            }
        }
    }

-------

其实这个前面的数字验证是一样的只是代码少了一些,还有要补充一下的是这个数字验证是用于editform的column是自动生成的!不是用columntamplete.

 

 

还有一种方法:

 protected void RadGrid4_ItemCreated(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridEditableItem && e.Item.IsInEditMode)
        {
            var item = e.Item as GridEditableItem;
            var standardEditor = (GridTextBoxColumnEditor)item.EditManager.GetColumnEditor("length");
            var txtBox = standardEditor.TextBoxControl;
            if (txtBox != null)
            {
                var numericSetting = (NumericTextBoxSetting) RadInputManager1.GetSettingByBehaviorID("NumericBehavior1");
                numericSetting.TargetControls.Add(new TargetInput(txtBox.UniqueID, true));
                txtBox.Width = 33;
            }
        }
    }

<telerik:RadInputManager ID="RadInputManager1" runat="server">
            <telerik:NumericTextBoxSetting Culture="en-US" DecimalDigits="1" Type="Number" InitializeOnClient="false" ErrorMessage="only numbers can be added" EmptyMessage="0" BehaviorID="NumericBehavior1">
            </telerik:NumericTextBoxSetting>
        </telerik:RadInputManager>