Пожалуйста, посмотрите на следующий фрагмент кода, который отлично работает на моем конце.
ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" DataSourceID="SqlDataSource1"
AllowPaging="true" OnItemDataBound="RadGrid1_ItemDataBound">
<MasterTableView DataKeyNames="OrderID">
<Columns>
<telerik:GridBoundColumn UniqueName="OrderID" DataField="OrderID" HeaderText="OrderID">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ShipCity" HeaderText="ShipCity" UniqueName="ShipCity" />
<telerik:GridTemplateColumn HeaderText="value" UniqueName="value">
<ItemTemplate>
<telerik:RadNumericTextBox runat="server" ID="value" NumberFormat-AllowRounding="false">
<NumberFormat GroupSeparator="" />
<ClientEvents OnValueChanged="checkValues" />
</telerik:RadNumericTextBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = e.Item as GridDataItem;
RadNumericTextBox Editbtn = item.FindControl("value") as RadNumericTextBox;
Editbtn.Attributes.Add("rowindex", item.ItemIndex.ToString());
}
}
JavaScript:
<script type="text/javascript">
function checkValues(sender, args) {
var radGrid = $find('<%=RadGrid1.ClientID %>');
var masterTable = radGrid.get_masterTableView();
var row = sender._element.getAttribute("rowindex");
if (row != 0) {
for (var i = 0; i < row; i++) {
if (masterTable.get_dataItems()[i].findControl("value").get_value() < args.get_newValue()) {
sender.set_value(" ");
sender.focus();
}
}
}
}
</script>