2016-11-14 7 views
0

私はこのSQL表からの背後にあるコードで作成したフォームがあります。 StringBuilderでコントロールを結合するには?

Dim holder As PlaceHolder = CType(FV.FindControl("plControl"), PlaceHolder) 
    Dim html As New StringBuilder() 

    html.Append("<table>") 

    For Each Row As DataRow In ds.Tables(0).Rows 

    html.Append("<tr style='border: 1px solid black; height:30px;'>") 
    html.Append("<td style='padding-right:40px; width:400px; text-align:right; background-color:lightgray;border: 1px solid black;'><b>") 
    html.Append(Row(columnName:="Name")) 
    html.Append("</b></td>") 
    html.Append("<td style='width:300px; text-align:center; background-color:lightgray;border: 1px solid black;'>") 
    html.Append("</td>") 

    html.Append("<td style='width:300px; text-align:center; background-color:lightgray;border: 1px solid black;'>") 
    html.Append("</td>") 

    html.Append("</tr>") 

    Next 

    html.Append("</table>") 

    holder.Controls.Add(New Literal() With { _ 
        .Text = html.ToString() _ 
       }) 

は今、この表では、私が追加したいとコントロールが、すべてのコントロールはHTMLテキストとして認識されますStringBuilderの中に追加しました。

Dim btn As New Button 
    btn.Text = "Click me.." 
    AddHandler btn.Click, AddressOf MyButton_Click 
    MyPlaceHolder.Controls.Add(btn) 

をしかし、このコントロールは、私のテーブルの上に追加されます。

私は、ループ内でこれを使用していました。私はちょうどこのテーブルのコントロールに追加する方法があることを知りたいですか?

答えて

2

コントロールを追加する2つの異なる方法を混在させています。テーブルの場合は、HTML文字列を作成してからページに追加します。ボタンの場合は、テーブルを追加する前にButtonオブジェクトを作成し、それをページに追加します。 1つの方法または他の方法を使用する必要があります(すべてにオブジェクトまたはHTML文字列を使用します)。

ボタンのイベントハンドラを持っているので、Tableクラスでテーブルを構築する方が簡単かもしれません。 http://geekswithblogs.net/dotNETvinz/archive/2009/03/17/dynamically-adding-textbox-control-to-aspnet-table.aspx

は、その後、あなたが適切なテーブルセルにあなたのボタンを追加することができます。

はここでやっていることの一例があります。

1

あなたは、文字列とコントロールとしてHTMLを混在させることはできません、asp.netの表を使用する必要があります。

'create an asp.net table 
Dim table As Table = New Table 

'let's add some cells 
Dim i As Integer = 0 
Do While (i < 5) 

    'create a new control for in the table 
    Dim linkButton As LinkButton = New LinkButton 
    linkButton.ID = ("CellLinkButton_" + i.ToString) 
    linkButton.Text = ("LinkButton " + i.ToString) 

    'create a new table row 
    Dim row As TableRow = New TableRow 

    'create 2 new cells, 1 with text and 1 with the linkbutton control 
    Dim tableCell As TableCell = New TableCell 
    tableCell.Text = ("Cell " + i.ToString) 
    row.Cells.Add(tableCell) 

    tableCell = New TableCell 
    tableCell.Controls.Add(linkButton) 
    row.Cells.Add(tableCell) 

    'add the new row to the table 
    table.Rows.Add(row) 

    i = (i + 1) 
Loop 

'add the table to the placeholder 
PlaceHolder1.Controls.Add(table) 
関連する問題