如何计算在客户端radgrid控件的单元格的值?
-
06-09-2019 - |
题
我Telerik的radgrid控件这在编辑模式。每个单元包含NumericTextBox。是否有可能基于相同的行(在客户侧)的其它细胞,以计算一个小区。 例如,如果我有一个包含细胞如价格和项目我想在每一个变化来计算总价,但在客户端,而不会去服务器端的行。这是可能的radgrid控件?
解决方案
感谢您的答案,但我发现在的 Telerik的论坛。我就在这里粘贴的解决方案的情况下,有人被困在同样的问题得到。
ASPX:
<Columns>
<rad:GridTemplateColumn UniqueName="Price" HeaderText="Price">
<EditItemTemplate>
<radI:RadNumericTextBox ID="txtPrice" runat="server">
</radI:RadNumericTextBox>
</EditItemTemplate>
</rad:GridTemplateColumn>
<rad:GridTemplateColumn UniqueName="Quantity" HeaderText=" Number of Items">
<EditItemTemplate>
<radI:RadNumericTextBox ID="txtQuantity" runat="server">
</radI:RadNumericTextBox>
</EditItemTemplate>
</rad:GridTemplateColumn>
<rad:GridTemplateColumn UniqueName="TotalAmount" HeaderText="Total">
<EditItemTemplate>
<radI:RadNumericTextBox ID="txtTotalAmount" runat="server">
</radI:RadNumericTextBox>
</EditItemTemplate>
</rad:GridTemplateColumn>
</Columns>
C#
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem && e.Item.IsInEditMode)
{
GridDataItem item = (GridDataItem)e.Item;
RadNumericTextBox txtPrice= item.FindControl("txtPrice") as RadNumericTextBox; // Get the textbox for column Price
RadNumericTextBox txtQuantity= item.FindControl("txtQuantity") as RadNumericTextBox; // Get the textbox for column Quantity
RadNumericTextBox txtTotalAmount= item.FindControl("txtTotalAmount") as RadNumericTextBox; // Get the textbox for column "TotalAmount", if it is template as shown in aspx
txtPrice.Attributes.Add("onFocusout", "return calculate('" + txtPrice.ClientID + "','" + txtQuantity.ClientID + "','" + txtTotalAmount.ClientID + "')");
txtQuantity.Attributes.Add("onFocusout", "return calculate('" + txtPrice.ClientID + "','" + txtQuantity.ClientID + "','" + txtTotalAmount.ClientID + "')");
txtTotalAmount.Attributes.Add("onfocus", "return calculate('" + txtPrice.ClientID + "','" + txtQuantity.ClientID + "','" + txtTotalAmount.ClientID + "')");
}
}
JavaScript的:
<script type="text/javascript">
function calculate(price, quantity, totalAmount)
{
var text1 = $find(price); //I used Asp.net Ajax find method
var text2 = $find(quantity);
var text3 = $find(totalAmount);
var total = text1.GetValue() * text2.GetValue();
text3.SetValue(total);
}
</script>
其他提示
这是可能的,只要你通过客户端得到数据绑定为好,很可能是通过AJAX。如果是这样,你应该能够从电网的DataSource属性得到所有值。如果您绑定数据服务器方面,它变得更难,因为目前电网不建立在这种情况下,客户端的数据源。
查看演示从radgrid控件的Telerik的网站 - >它使用数字文本框和显示应用场景部分你正在寻找,花花公子
。迪克
由于每个项目是你可以使用JavaScript来找到通过所有输入的父项,然后环找到你正在寻找的那些表行?如果你要使用jQuery这应该是可能的,如果你想轻松区分文本框,你可以应用的CssClass每个文本框?
不隶属于 StackOverflow