2012-02-22 17 views
0

下記のようなボタンコントロールを作っています。 私は下記のようなコードを少し持っています。 私は2つの方法で試しましたが、どちらもうまくいきません。 btnオブジェクトでonw、2番目に直接書き込む。 N個のアイテムのランタイムに3つのボタンをすべて作成する必要があります。すべてのボタンには、アイデンティティを除いていくつか共通のものがあります。それを動作させる方法を少し教えてください。実行時にaspボタンコントロールを書き込む方法は?

Button btn = new Button(); 
      btn.ID = "btnDress" + x; 
      btn.CommandName = "DressBtn"; 
      btn.Text = "Dressing"; 
      btn.CommandArgument = x.ToString(); 
      btn.UseSubmitBehavior = true; 
      btn.Click += new EventHandler(btnDress_Click); 

void draw() 
{ 
drawItem = drawItem + @" <div class=new_options> 
        <ul> 
         <li> 
          "+btn+ @"</li> 
         <li> 
          <asp:Button ID='btnSpInst_'" + x + @" runat='server' CommandName='SpeInstBtn' Text='Special Instruction' 
           OnClick='btnDress_Click' CommandArgument='" + x + @"' /></li> 
         <li> 
          <asp:Button ID='btnTopp_'" + x + @" runat='server' CommandName='ToppBtn' Text='Toppings' OnClick='btnDress_Click' CommandArgument='" + x + @"' /></li> 
        </ul> 
        <div class='clear'> 
        </div>"; 

      x++; 
} 

このコードの問題は私が耕作しようとしたが、これらは文字列として記述し、ASPのボタンに述べたように、これまでのdivのために私は、いくつかの修正パラメータを持っているその場で3つのボタンを記述する必要があるということです仕事をしていないと、何らかの体が私に、上のことをどのように働かせることができるか教えてくれますか?

これは、アイテムの再描画が必要なhtmlです。フライでは、ここで私はボタンを保持しているが、実際には飛行機でそれを生成したい。

<div class="new_options"> 
        <ul> 
         <li> 
          <asp:Button ID="Button4" runat="server" Visible="true" CommandName="DressBtn" Text="Dressing" OnClick="btnDress_Click" /></li> 
         <li> 
          <asp:Button ID="Button5" runat="server" Visible="true" CommandName="SpeInstBtn" Text="Special Instruction" 
           OnClick="btnDress_Click" /></li> 
         <li> 
          <asp:Button ID="Button6" runat="server" CommandName="ToppBtn" Visible="true" Text="Toppings" OnClick="btnDress_Click" /></li> 
        </ul> 
        <div class="clear"> 
        </div> 
       </div> 

答えて

1

これはコードの背後から行います。ここまで始めたようなコントロールを作成し、ページ上のどこかを選択して、someContainerControl.Controls.Add(MyNewButton)などのようなものを配置します。

+0

それは私がそれを登録する方法を得ていない理由です。なぜなら、私はいくつかのaspプレースホルダーを取ると、私は同じ場所で再び各プレースホルダーの固有IDを生成しなければならないからです。 – NoviceToDotNet

+0

いいえ、同じプレースホルダを使用して、さらにボタンを追加することができます。 – Induster

1

このようにサーバーコントロールを作成することはできません。コードを使用してそれらを作成して(すでに行った)、それらをフォームに追加します。プレースホルダも使用できます。

Button btn = new Button(); 
     btn.ID = "btnDress" + x; 
     btn.CommandName = "DressBtn"; 
     btn.Text = "Dressing"; 
     btn.CommandArgument = x.ToString(); 
     btn.UseSubmitBehavior = true; 
     btn.Click += new EventHandler(btnDress_Click); 
    form1.Controls.Add(btn); 
+0

実行時にいくつかのdivに追加する必要がありますが、それ自体は実行時に描画されます。 – NoviceToDotNet

関連する問題