This is a migrated thread and some comments may be shown as answers.

Updating Value in radgrid clientside when radnumerictextbox onvaluechanged

1 Answer 142 Views
Input
This is a migrated thread and some comments may be shown as answers.
Dash
Top achievements
Rank 1
Dash asked on 12 Nov 2013, 05:06 PM
I have a radnumerictextbox in one column of a radgrid and a label in another column of the same radgrid.

I'm trying to calculate the value of the label when the radnumerictextbox changes. If I set up the event handler clientside it fires the event, but I don't know how to figure out what row in the radgrid to update the value in. If I try to set up the handler in the itemcreated event of the radgrid, it fires the function right away.( I assume this is because of the parenthesis). Here is the code snippets. Any ideas?

 

 

<telerik:RadGrid runat="server" ID="RewardProductsGrid" EnableViewState="True" ShowStatusBar="False" ShowFooter="False"
 
 DataSourceID="RewardProductsSource" ShowHeader="False"
 
 OnItemDataBound="RewardProductsGrid_OnItemDataBound"
 
 OnItemCreated="RewardProductsGrid_OnItemCreated">
 
 <ClientSettings EnableAlternatingItems="False" ></ClientSettings>
 
 <mastertableview autogeneratecolumns="False" datakeynames="ProductId"
 
 editmode="EditForms" nomasterrecordstext="No orders found." allowsorting="False"
 
 allowmulticolumnsorting="False">
 
 <Columns>
 
 <telerik:GridTemplateColumn AllowFiltering="False">
 
 <ItemTemplate>
 
 <asp:Image runat="server" ImageUrl='<%# ((Product)Container.DataItem).CartImageUrl %>'/>
 
 </ItemTemplate>
 
 </telerik:GridTemplateColumn>
 
 <telerik:GridTemplateColumn AllowFiltering="False">
 
 <ItemTemplate>
 
 <asp:Label runat="server" ID="ProductNameLabel" Text='<%# ((Product)Container.DataItem).NameLocalized %>'></asp:Label><br/>
 
 <asp:Label runat="server" ID="ItemNumberLabel"></asp:Label>:#<asp:Label runat="server" ID="ItemNumber" Text='<%# ((Product)Container.DataItem).ProductNumber %>'></asp:Label>
 
 </ItemTemplate>
 
 </telerik:GridTemplateColumn>
 
 <telerik:GridTemplateColumn AllowFiltering="False">
 
 <ItemTemplate>
 
 <asp:Label runat="server" ID="PointsLabel"></asp:Label>:<br/>
 
 <asp:Label runat="server" ID="Points" Text='<%# String.Format("{0:#}",((Product)Container.DataItem).CurrentRewardPointPrice) %>'></asp:Label>
 
 </ItemTemplate>
 
 </telerik:GridTemplateColumn>
 
 <telerik:GridTemplateColumn AllowFiltering="False">
 
 <ItemTemplate>
 
 <asp:Label runat="server" ID="QuantityLabel"></asp:Label>:<br/>
 
 <telerik:RadNumericTextBox runat="server" ID="QuantityTextBox" Value="1" MaxValue="10" MinValue="1">
 
 <NumberFormat DecimalDigits="0"></NumberFormat>
 
 <%-- <ClientEvents OnValueChanged="QuantityTextBoxValueChanged"></ClientEvents>--%>
 
 </telerik:RadNumericTextBox>
 
 </ItemTemplate>
 
 </telerik:GridTemplateColumn>
 
 <telerik:GridTemplateColumn AllowFiltering="False">
 
 <ItemTemplate>
 
 <asp:Label runat="server" ID="ItemTotalLabel"></asp:Label>:<br/>
 
 <asp:Label runat="server" ID="ItemTotal"></asp:Label>
 
 </ItemTemplate>
 
 </telerik:GridTemplateColumn>
 
 </Columns>
 
 </mastertableview>
 
 </telerik:RadGrid>
 
 
protected void RewardProductsGrid_OnItemCreated(object sender, GridItemEventArgs e)
 
{
 
 if (e.Item is GridDataItem)
 
{
 
 GridDataItem item = (GridDataItem)e.Item;
 RadNumericTextBox radNumericTextBox = (RadNumericTextBox)item.FindControl("QuantityTextBox");
 // chkBox.Attributes.Add("onclick", "clicked_chkBox('" + item.ItemIndex + "')");
 radNumericTextBox.ClientEvents.OnValueChanged = "change_quantity('" + item.ItemIndex + "')";
}
 
}
<telerik:RadScriptBlock ID="RadGridScriptBlock" runat="server">
<script type="text/javascript">
 
function CloseActiveToolTip() {
setTimeout(function () {
var tooltip = Telerik.Web.UI.RadToolTip.getCurrent();
if (tooltip) tooltip.hide();
}, 1000);
}
 
function refreshGrid() {
var masterTable = $find("<%= RewardProductsGrid.ClientID %>").get_masterTableView();
masterTable.rebind();
}
 
 function QuantityTextBoxValueChanged(sender, args) {
 alert("Test");
 alert(sender.get_value());
}
 function change_quantity(index) {
 alert(index);
}
</script>
</telerik:RadScriptBlock>

 

 

1 Answer, 1 is accepted

Sort by
0
Dash
Top achievements
Rank 1
answered on 13 Nov 2013, 03:59 PM
Ok I figured it out. I write the row index into an attribute of the textbox on ItemCreated. Then I can get the value of the textbox and the index in the valuechanged.

Thanks

Dash
Tags
Input
Asked by
Dash
Top achievements
Rank 1
Answers by
Dash
Top achievements
Rank 1
Share this question
or