2016-11-20 79 views
0

我已經使用從數據表獲取數據的字符串構建器從類創建表。現在我在一個名爲'Stadium Name'的字段中添加了一個HTML按鈕,但它沒有顯示出來。C#HTML表按鈕不可見

這裏是我的代碼:

StringBuilder html = new StringBuilder(); 

      html.Append("<table border = '1'>"); 

      html.Append("<tr>"); 

      foreach (DataColumn column in dt.Columns) 
      { 
       html.Append("<th>"); 
       html.Append(column.ColumnName); 
       html.Append("</th>"); 
      } 
      html.Append("</tr>"); 

      foreach (DataRow row in dt.Rows) 
      { 
       html.Append("<tr>"); 
       foreach (DataColumn column in dt.Columns) 
       { 
        html.Append("<td>"); 
        if (column.ColumnName != "Stadium Name") 
        { 
         html.Append(row[column.ColumnName]); 
        } 
        // PROBLEM STARTS HERE 
        if (column.ColumnName == "Stadium Name") 
        { 
         HtmlButton b = new HtmlButton();      
         b.ID = "btnSname"; 
         b.InnerText = row[column.ColumnName].ToString(); 
         b.ServerClick += new EventHandler(btnSname_Click); 

        }  
        // PROBLEM ENDS HERE    

        html.Append("</td>");      

       } 
       html.Append("</tr>"); 
      } 

      html.Append("</table>"); 

      return html; 

現在下的列體育場名稱的數據是空的。

+0

如果您將此服務作爲asp.net頁面的一部分,那麼您可能通過創建文字html來過度複雜化事情 - 您是否考慮過使用DataList或Repeater控件? – Filburt

回答

2

您不會在任何地方追加bhtml。此外,這種方法將不起作用,因爲即使您成功將b序列化爲html代碼並將其附加到html,您也將失去事件接收器。

你可以做的是在你的頁面上添加一個Table控件(你正在做Web窗體?)並從後端動態地添加控件,類似於你現在正在做的事情。

https://msdn.microsoft.com/en-us/library/ty0ce8sc.aspx#CodeExamples

甚至更​​好更簡單 - 你可以直接綁定您的數據到一個GridView?

+0

有沒有其他的方法來實現同樣的事情,但使用事件處理程序在體育場名稱下的數據按鈕? –

+0

是的,請參閱更新 –

+0

我可以將它綁定到gridview,如果我想,但我覺得很容易,所以我想以不同的方式做 –