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>