2009-08-18 8 views
1

明らかに不可能な質問ではないようですが、HtmlTableオブジェクトを使用してHtmlTableコントロール(コードビハインドからアクセス可能)にデータを設定する方法が見つかりませんデータで満たされています。HtmlTableコントロールをASP/CでHtmlTableオブジェクトに代入する

誰でもこのことについて私を助けることができますか?

よろしく、ASPページで

EDIT

が、私はID = "TABLE1" 分離コードで

とHTMLのテーブルを持って、私が最初にやってリストからHTMLテーブルオブジェクトを移入しますこのように:

HtmlTable localTable1 = new HtmlTable(); 
HtmlTableCell cell1 = new HtmlTableCell(); 
HtmlTableCell cell2 = new HtmlTableCell(); 

foreach (Evaluation eval in theEvaluations) 
{ 
    HtmlTableRow anEvaluation = new HtmlTableRow(); 

    cell1.InnerText = eval.attr1; 
    anEvaluation.Cells.Add(cell1); 

    cell2.InnerText = eval.attr2; 
    anEvaluation.Cells.Add(cell2); 

    localTable1.Rows.Add(anEvaluation); 
} 

// And eventually here I should pass the localTable1 to table1 
+0

あなたには、いくつかのコードを投稿することができますので、我々はあなたがやろうとしているものより良いアイデアを得ることができますか? – BigBlondeViking

+0

あなたは何を持っているのか、それをどうしようとしているのかを知るためにいくつかのコードを表示してください。 – TheVillageIdiot

+0

もちろん!以下のコードスニペットを参照してください –

答えて

0

[OK]を、私は最終的にすべてが動作してい、ル残りの問題は、HtmlTableCellオブジェクトの間違った宣言の場所にだけでした。ここで

は、作業の抜粋です:

foreach (Evaluation eval in theEvaluations) 
{ 
    HtmlTableRow anEvaluation = new HtmlTableRow(); 
    HtmlTableCell cell1 = new HtmlTableCell(); 
    HtmlTableCell cell2 = new HtmlTableCell(); 


    cell1.InnerText = eval.attr1; 
    anEvaluation.Cells.Add(cell1); 

    cell2.InnerText = eval.attr2; 
    anEvaluation.Cells.Add(cell2); 

    table1.Rows.Add(anEvaluation); // table1 : the real HTML table in ASP page 
} 
0

あなたが作成する>タグ<テーブルを使用していますテーブル?その場合は、< asp:Table >タグを使用すると、コードビハインドからテーブルにアクセスできます。

1

あなたがテーブルを持っていて、それがどのように動作するかではありません

HtmlTable myTable = new HtmlTable(); 
this.myPageTable = myTable; 

ような何かをしようとしているように聞こえます。ポピュレートされたテーブルオブジェクトをレンダリングしたい場合は、リテラルコントロールを作成し、それにControlsコレクションのAdd()メソッドにアクセスしてテーブルオブジェクトを追加します。このように:

HtmlTable myTable = new HtmlTable(); 
this.myLiteral.Controls.Add(myTable); 

または、テーブルを直接入力する必要があります。

+0

ありがとうスペンサーが、私はすでに私のASPページ(ヘッダーが指定されている)で精密なテーブルフレームを解決していると私はちょうど –

+0

の行を追加したいと思います。新しいテーブル全体ではなく新しいHtmlTableRow()オブジェクトを作成します。 –

+0

これは私が今行っていることです。ASPテーブルに行を追加しますが、ソースリスト(2つの要素を含む)の最後のレコードのみが追加されます... –

0

より良い解決策は、可能であれば、ページからのHtmlTableに、それが移入されている関数に渡すことです。 ASPページで

0

、私はID =「TABLE1」分離コードで

でHTMLテーブルを持って、私が最初にこのようにすること一覧からHTMLテーブルオブジェクトを移入:

HtmlTable localTable1 = new HtmlTable(); 
HtmlTableCell cell1 = new HtmlTableCell(); 
HtmlTableCell cell2 = new HtmlTableCell(); 

foreach (Evaluation eval in theEvaluations) 
{ 
    HtmlTableRow anEvaluation = new HtmlTableRow();` 

    cell1.InnerText = eval.attr1; 
    anEvaluation.Cells.Add(cell1); 

    cell1.InnerText = eval.attr1; 
    anEvaluation.Cells.Add(cell2); 

    localTable1.Rows.Add(anEvaluation); 
} 

// And eventually here I should pass the localTable1 to table1 
+0

情報を追加する必要がある場合は、答えを提出する代わりに。あなたの質問にこれを追加したので、この回答を削除してください。 –

0

あなたはねあなた自身のために仕事を創るだけです。そこに最終的な目的地への参照がある場合、ローカル変数にすべての行を作成する必要はありません。

これを試してみてください:

foreach (Evaluation eval in theEvaluations) 
{ 
    HtmlTableRow anEvaluation = new HtmlTableRow(); 

    cell1.InnerText = eval.attr1; 
    anEvaluation.Cells.Add(cell1); 

    cell1.InnerText = eval.attr1; 
    anEvaluation.Cells.Add(cell2); 

    table1.Rows.Add(anEvaluation); 
} 
+0

はい!私はすでにこれを試しましたが、最後に追加されたセルだけが含まれています... –

+0

すべての異なる列を追加するために私が見つけた唯一の方法は、それぞれのHtmlTableCellをインスタンス化することです。 しかし、私は列に同じ問題があります:私のリスト "theEvaluations"の最後の1つだけがASPテーブルの最後にあります。 List.Countをチェックして、そこに複数のレコードがあります... –

関連する問題