문제

편집 모드에있는 Telerik Radgrid가 있습니다. 각 셀에는 숫자 텍스트 박스가 포함되어 있습니다. 동일한 행 (클라이언트 쪽)의 다른 셀을 기반으로 한 셀을 계산할 수 있습니까? 예를 들어 가격 및 항목과 같은 셀이 포함 된 행이있는 경우 모든 변경 사항에서 총 가격을 계산하지만 서버쪽에 가지 않고 클라이언트 측에서 원하는 경우를 원합니다. Radgrid에서 가능합니까?

도움이 되었습니까?

해결책

모든 답변에 감사하지만 여기에서 솔루션을 찾았습니다. 텔레릭 포럼. 누군가 같은 문제에 갇히게하는 경우 여기에 솔루션을 붙여 넣을 것입니다.

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>

씨#

  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 + "')");  
    }  
} 

자바 스크립트 :

<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를 통해 가능성이 높습니다. 그렇다면 그리드의 데이터 소스 속성에서 모든 값을 얻을 수 있어야합니다. 데이터 서버 측을 바인딩하면이 경우 그리드가 클라이언트 측 데이터 소스를 구축하지 않기 때문에 더 어려워집니다.

Radgrid-> 응용 프로그램 시나리오 섹션에서 Telerik 사이트의 데모를 확인하고 숫자 텍스트 상자를 사용하고 원하는 내용을 보여줍니다.

형사

각 항목이 테이블 행 안에 있으므로 JavaScript를 사용하여 상위 항목을 찾은 다음 모든 입력을 통해 루프하여 원하는 것을 찾을 수 있습니까? jQuery를 사용하려면 이것이 가능해야하며 텍스트 상자를 쉽게 구별하려면 각 텍스트 상자에 cssclass를 적용 할 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top