Render() をオーバーライドし、その HTML を動的に作成するコントロールがあります。これを単純化したバージョンを次に示します。
public class CReportBillReadings : Control
{
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
writer.Write(Html);
}
private string Html
{
get
{
// render result table
var sb = new StringBuilder();
sb.Append("<ul id=\"export\"><li><a href=\"#\" onclick=\"table_to_pdf(); return false;\"><img src=\"/resources/images/pdfIcon16x16.gif\" /></a></li></ul><div class=\"clear\"></div>");
等々。
実際に行うことは、与えられたデータに従ってテーブルを描画することです。
サーバー側でそのイベントに登録できるように、 asp ボタンを html に追加したいと考えています。
これを行うために私が見つけた唯一の方法は次のとおりです。
- このボタンをプレース ホルダーに追加します。HTML 全体が動的に生成されるため、ここでは適用できません。
- jquery ボタンを追加しますが、サーバー側でイベントを処理する必要があります。
ここで有望なリードについて読みました: http://www.evagoras.com/2011/02/10/how-postback-works-in-asp-net/
しかし、私はまだそれを使用する方法を理解できません。例では、ボタンが.aspxでまだ宣言されており、コードで動的に宣言されていないためです。