2015-03-26 2 views
0

В основном я создаю строки, затем ячейки затем заполняю ячейки с помощью LinkButton, который получает текстовое значение из узлов XML.Заполните таблицу с строками таблицы и ячейками в событии кликов LinkButton при получении информации из XML

Код:

private void linkBTN_Click(object sender, EventArgs e) 
     { 

       LinkButton btn = (LinkButton)sender; 
       string text = btn.Text.ToString(); 
       XmlDocument clickDoc = new XmlDocument(); 
       clickDoc.Load(Server.MapPath("~/ProductShow.xml")); 
       XmlNodeList btnNode = clickDoc.SelectNodes("products/" + text.ToString() + "/*"); 
       int count = btnNode.Count; 


       foreach (XmlNode node in btnNode) 
       { 


        TableRow row = new TableRow(); 

        TableCell cell = new TableCell(); 
        cell.CssClass = "Cell"; 

        LinkButton linkbtn = new LinkButton(); 
        linkbtn.Text = node.InnerText; 
        linkbtn.Attributes.Add("runat", "server"); 
        Image img = new Image(); 

        cell.Controls.Add(linkbtn); 
        cell.Controls.Add(new LiteralControl("<br/>")); 
        cell.Controls.Add(img); 
        row.Cells.Add(cell); 

        MainTable.Rows.Add(row); 


       } 







    } 

Моя проблема заключается в том, что я хочу создать 4 ячейки для каждой строки и мой код создает 1 ячейку для каждой строки недо Узлы конец

+0

Адрес: где мой объект MainTable? – atomCode

+0

в Default.aspx внутри UpdatePanel .. Содержимое –

ответ

0

Вам нужен другой цикл, чтобы добавить больше столбцов к каждой строке

foreach (XmlNode node in btnNode) 
    { 
     TableRow row = new TableRow(); 

     for (int i = 0; i < 4; i++){ 
       TableCell cell = new TableCell(); 
       cell.CssClass = "Cell"; 

       LinkButton linkbtn = new LinkButton(); 
       linkbtn.Text = node.InnerText; 
       linkbtn.Attributes.Add("runat", "server"); 
       Image img = new Image(); 

       cell.Controls.Add(linkbtn); 
       cell.Controls.Add(new LiteralControl("<br/>")); 
       cell.Controls.Add(img); 

       row.Cells.Add(cell); 
     } 
       MainTable.Rows.Add(row);     
    } 
+0

но это будет перекрывать содержимое btnNode, например, если в btnNode узлы пять этот цикл будет делать первую строку с [0] [1] [2] [3] второй ряд будет [1] [2] [3] [4] и так далее я хотел бы, чтобы это было [0] [1] [2] [3] [4] [5 ] [6] [7] ..... –

+0

Я в замешательстве Я думал, вы сказали, что сказали, что хотите создать 4 столбца/ячейки, теперь вы говорите, что хотите ячейку для каждого узла? А также строка для каждого узла? вы потеряли меня ... – atomCode

+0

no i want 4 ячейки для каждой строки, в которой работает ваш пример, но он перезаписывает значение узлов в btnNode. Он будет создавать строки с 4 ячейками, которые имеют 4 LinkButtons с точно таким же текстом, и я не хочу этого –

 Смежные вопросы

  • Нет связанных вопросов^_^