2016-11-20 6 views
0

データテーブルからデータを取得する文字列ビルダを使用してクラスからテーブルを作成しました。今度は、「スタジアム名」フィールドに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にバインドすることができましたので、私は別にそれをしたかった –

関連する問題