اذهب إلى المحتوى

السؤال

نشر

لدي ملف 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();

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

Recommended Posts

  • 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>

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...