2015-05-26 18 views
0

我只是想在GridView中以XML綁定了多個子節點這樣的..購物XML節點列表與XPath和綁定在嵌套的GridView

<?xml version="1.0" encoding="utf-8" ?> 
<Products> 
<Product> 
    <SKU>DL-DL4002</SKU> 
    <Name>Leopard Print Strapless Corset Top with G-string</Name> 
    <ImagePath4> 
     http://da.com/images/product/large/DL-DL4002_4_.jpg 
    </ImagePath4> 
    <Variants> 
     <Variant> 
     <Size>S</Size> 
     <Cost>25.28</Cost> 
     <MSRP>57.45</MSRP> 
     <Avialability>in stock</Avialability> 
     <Weight>0.6</Weight> 

     </Variant> 
     <Variant> 
     <Size>M</Size> 
     <Cost>25.28</Cost> 
     <MSRP>57.45</MSRP> 
     <Avialability>in stock</Avialability> 
     <Weight>0.6</Weight> 

     </Variant> 
     <Variant> 
     <Size>L</Size> 
     <Cost>25.28</Cost> 
     <MSRP>57.45</MSRP> 
     <Avialability>in stock</Avialability> 
     <Weight>0.6</Weight> 

     </Variant> 
     <Variant> 
     <Size>XL</Size> 
     <Cost>25.28</Cost> 
     <MSRP>57.45</MSRP> 
     <Avialability>out of stock</Avialability> 
     <Weight>0.6</Weight> 

     </Variant> 
    </Variants> 
    </Product> 
    <Product> 
    <SKU>DL-DL4003</SKU> 
    <Name>Designer Purple Brocade Party Corset Top</Name> 

    <ImagePath4> 
     http://da.com/images/product/large/DL-DL4003_4_.jpg 
    </ImagePath4> 
    <Variants> 
     <Variant> 
     <Size>S</Size> 
     <Cost>23.1</Cost> 
     <MSRP>52.5</MSRP> 
     <Avialability>in stock</Avialability> 
     <Weight>0.6</Weight> 

     </Variant> 
     <Variant> 
     <Size>M</Size> 
     <Cost>23.1</Cost> 
     <MSRP>52.5</MSRP> 
     <Avialability>in stock</Avialability> 
     <Weight>0.6</Weight> 

     </Variant> 
     <Variant> 
     <Size>L</Size> 
     <Cost>23.1</Cost> 
     <MSRP>52.5</MSRP> 
     <Avialability>in stock</Avialability> 
     <Weight>0.6</Weight> 

     </Variant> 
     <Variant> 
     <Size>XL</Size> 
     <Cost>23.1</Cost> 
     <MSRP>52.5</MSRP> 
     <Avialability>in stock</Avialability> 
     <Weight>0.6</Weight> 

     </Variant> 
    </Variants> 
    </Product> 
</Products> 

,其確定當我結合這與像

的GridView
XmlDocument xmldoc = new XmlDocument(); 
    xmldoc.Load(Server.MapPath("~/XML/XM.xml")); 
    XmlNodeList nodeList = xmldoc.SelectNodes("/Products/Product"); 

    foreach (XmlNode node in nodeList) 
       { 
        DataRow dtrow = dt.NewRow(); 
        dtrow["SKU"] = node["SKU"].InnerText; 
       } 

其確定,但是當我結合內部的GridView對於一些變體嵌套gridview的上行數據綁定

這樣,

protected void GridXML_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 

      GridView gv = (GridView)e.Row.FindControl("gvChildGrid"); 
      DataTable dt = new DataTable(); 
     XmlNodeList nodeList = xmldoc.DocumentElement.SelectNodes("/Products/Product/Variants/Variant"); 
     } 
} 

它會選擇所有變型節點以對象即Prodct SKU ID = DL-DL4000和DL-DL4002但我只是想選擇只有IE瀏覽器一個一個對象由一個

請幫

回答

0

基本上,您可以使用xpath謂詞([])爲特定條件過濾元素。例如:

string sku = "DL-DL4002"; 
string xpath = String.Format("/Products/Product[SKU='{0}']/Variants/Variant", sku); 
XmlNodeList nodeList = xmldoc.DocumentElement 
          .SelectNodes(xpath); 

上面的例子將有SKU等於"DL-DL4002"Product返回Variant。我不熟悉ASP.NET的GridView,但你應該能夠從e.Row參數獲取當前SKU值。

+0

瞧,它的工作原理.... 感謝 – Khatri