我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每个文本框?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top