クライアント側のRadGridセルの値を計算する方法は?
-
06-09-2019 - |
質問
私が編集モードであるRadGridをtelerikています。各セルはNumericTextBoxが含まれています。それが(クライアント側)同じ行内の他のセルに基づいて、一つのセルを計算することが可能です。 私は価格やアイテムなどの細胞を含む行を持っている場合たとえば、私は、合計金額を計算しますが、クライアント側では、サーバ側に行くことなくするために、すべての変化にしたいです。これはRadGridで可能ですか?
解決
すべてのあなたの答えをありがとう、私は<のhref = "http://www.telerik.com/community/forums/aspnet/grid/i-have-telerik-radgrid-which-is-でここに解決策を見つけましたで編集モード - 各セル-含ま-numerictextboxは-IS-ITの可能ツー計算-1セルベースオン他の細胞型、同じr.aspx "REL =" noreferrer 「> 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を適用することができる?