• 0

كيف أُظهر عناصر ملف xml في عمود Gridview على asp.net؟

لدي ملف xml هذا، وأريد إظهار العناصر الموجودة به على GridView:

<?xml version="1.0" encoding="UTF-8"?>
<products>
    <product>
        <productID></productID>
        <productName></productName>
        <productDesc></productDesc>
        <productFeatures>
            <Feature></Feature>
            <Feature></Feature>
            <Feature></Feature>
        </productFeatures>
    </product>
    <product>
        <productID></productID>
        <productName></productName>
        <productDesc></productDesc>
        <productFeatures>
            <Feature></Feature>
            <Feature></Feature>
            <Feature></Feature>
            <Feature></Feature>
            <Feature></Feature>
            <Feature></Feature>
        </productFeatures>
    </product>
</products>

حاولت ربط الملف واستخراج  قيم العناصر لإظهارها داخل جدول Gridview بهذه الطريقة:

      var bind = productsDoc.Descendants("products").Select(product => new

        { 
            productID = product.Element("productID").Value,
            productName = product.Element("productName").Value,
            productDesc = product.Element("productDesc").Value,
            productAllFeatures = product.Element("productFeatures").Element("Feature").Value,
        }).OrderBy(product  => product.productName).ToList();

        producsGrdView.DataSource = bind;
        producsGrdView.DataBind();

فشلت في ذلك، فهل أجد الطريقة الصحيحة لفعل ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

الخطوة الأولى هي تنفيذ productAllFeatures  من بين لائحة الإعدادات، بالشكل التالي:

var bind = productsDoc.Descendants("products").Select(product => new
{
    ...
    productAllFeatures = product.Element("productFeatures")
                                .Descendants("Feature")
                                .Select(x => x.Value)
                                .ToList()
}).OrderBy(product  => product.productName).ToList();

ثم نظهر العناصر في الواجهة بالشكل التالي:

<Columns>
...
    <TemplateField HeaderText="Features">
        <ItemTemplate>
           <!-- xml تتم هما عملية جلب المعلومات من ملف -->
            <asp:Repeater runat="server" DataSource='<%# Eval("productAllFeatures") %>'>
                <ItemTemplate>
                    <!-- عرض البيانات-->
                    <%# Container.DataItem.ToString() %>
                </ItemTemplate>
            </asp:Repeater>
        </ItemTemplate>
    </TemplateField>

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن