سؤال

لدي Telerik Radgrid وهو في وضع التحرير. تحتوي كل خلية على NumerictEntbox. هل من الممكن حساب خلية واحدة تعتمد على الخلايا الأخرى في نفس الصف (على جانب العميل). على سبيل المثال، إذا كان لدي صف يحتوي على خلايا مثل السعر والعنصر الذي أريده على كل تغيير لحساب السعر الإجمالي ولكن على جانب العميل، دون الذهاب إلى جانب الخادم. هل هذا ممكن مع 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. إذا كان الأمر كذلك، يجب أن تكون قادرا على الحصول على جميع القيم من خاصية DataSource للشبكة. إذا قمت بربط جانب خادم البيانات، فه أصعب، لأن الشبكة حاليا لا تقوم ببناء مصدر بيانات العميل في هذه الحالة.

تحقق من العرض التوضيحي على موقع Telerik من Radgrid -> قسم سيناريوهات التطبيقات التي تستخدم مربعات نص رقمي وتوضح ما تبحث عنه، المتأنق.

ديك.

لأن كل عنصر موجود في صف جدول، يمكنك استخدام JavaScript للعثور على العنصر الأصل ثم حلقة من خلال جميع المدخلات للعثور على الأشخاص الذين تبحث عنه؟ إذا كنت ستستخدم jQuery، يجب أن يكون ذلك ممكنا، وإذا كنت ترغب في التمييز بين مربعات النص بسهولة، فيمكنك تطبيق CSSClass على كل مربع نص؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top