DropDownListsおよびButtonコントロールをリピーター内のPlaceHolderコントロールに追加します。
<asp:Repeater ID="Repeater1" runat="server" EnableViewState="true"
onitemcommand="Repeater1_ItemCommand" onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Text="one"></asp:ListItem>
<asp:ListItem Text="two"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem Text="three"></asp:ListItem>
<asp:ListItem Text="four"></asp:ListItem>
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" UseSubmitBehavior="false" Text="Button" CommandName="btn" />
</asp:PlaceHolder>
</ItemTemplate>
</asp:Repeater>
リピーターのItemCommandイベントで、ボタンクリックからCommandNameを確認し、動的ドロップダウンリストを作成してプレースホルダーに追加します。
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "btn")
{
DropDownList ddl = new DropDownList();
ddl.ID = "DropDownList1";
ddl.DataSource = new string[] { "one", "two" };
ddl.DataBind();
// your second dropdown would be created here in the same way
pl.Controls.Add(ddl);
}
}
SelectedIndexChangedイベントをフックするために行うべき作業がもう少しありますが、これで開始できます。