0

HTMLコードにリテラルがあります。

<tbody>
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>    
</tbody> 

私の VB コードでは、asp:checkbox を作成するように指示しています。

Protected Sub Page_LoadComplete(sender As Object, e As System.EventArgs) Handles Me.LoadComplete

Literal1.Text &= "<tr>" &
                     "<td>" & MyDataReader(0) & "</td>" &
                     "<td>" & MyDataReader(1) & "</td>" &
                     "<td>" & MyDataReader(2) & "</td>" &
                     "<td>Files Go Here</td>" &
                     "<td><asp:CheckBox ID=""CheckBox" & MyDataReader(0) & """ runat=""server"" /></td></tr>"

私の問題は、ロード後にページにチェックボックスが表示されないことです。他のすべては表示されます。ページのソース コードを確認すると、テーブルのソースに asp:checkbox がありますが、Web ページ自体には表示されません。非 asp:checkbox: を入れる<input id="Checkbox1" type="checkbox" />と表示されます。リテラルは の中にあり<form id="form1" runat="server">ます。助言がありますか?

4

3 に答える 3

1

Anasp:checkboxはプロセッサによってレンダリングされます。そのようにリテラルに挿入することはできません。を作成して、それをコントロールnew CheckBox()に追加できます。Placeholder

例えば:

 CheckBox chk = new CheckBox()
 chk.ID = "CheckBox" + MyDataReader(0)
 placeholder.Controls.Add(chk)
于 2012-07-23T18:06:22.270 に答える
1

runat="server" を属性として追加してみてください。

あれは

<input id="Checkbox1" type="checkbox" runat="server" />

また、このフォーラムの投稿をチェックしてください: http://forums.asp.net/t/1676105.aspx/1

于 2012-07-23T18:06:23.597 に答える
0

問題は、コントロールがレンダリングされたコントロールではなくテキストとして追加されていることだと思います。ASP.NET はページを処理し、ページがレンダリングされる前にタグを "runat='server'" に置き換えます。無効なマークアップでテキストを出力していると思われるため、何も表示されません。

利用可能なオプションの 1 つは、テーブルを ASP.NET テーブルとして作成し、分離コードを使用してコントロールを追加することです。

テストされていないコードは次のようになります。

Dim table myTable as table
Dim tableRow tr as new TableRow
Dim cell as new TableCell
cells.controls.Add(new CheckBox("values","here")) 'Pseudo code here 
tr.Cells.Add(cell)
table.Rows.Add(tr)

または、簡単な方法で「runat=server」をテーブルに追加することもできます。

于 2012-07-23T18:06:46.517 に答える