Как создать кнопку asp: программно в C# позади (без обработки кликов)
Следующая кнопка обеспечивает точную функциональность, которая мне требуется, но это должно быть сделано программно, так как я буду делать более одной, основываясь на некоторых переменных, но последнюю я могу выяснить, могу ли я просто создать кнопку ниже в качестве стартового:
<asp:Button runat="server" OnCommand="Load_Items" CommandArgument="1" text="Submit" />
Больше информации о том, что я делал здесь.
Редактировать:
Я смотрел на такие вопросы, но не вижу, куда идти Button btnSave = new Button();
чтобы увидеть кнопку на странице. Кроме того, большинство вопросов, которые я обнаружил, похоже, касаются использования C# для обработки кликов, но я хочу иметь свойство OnCommand для его обработки.
Если я делаю следующее и выполняю поиск с использованием инструментов разработчика для "btn", я не получаю результатов.
Button btnSave = new Button();
btnSave.ID = "btnSave";
btnSave.Text = "Save";
btnSave.CssClass = "btn";
2 ответа
Вот как вы создаете событие Button with Command.
Как только он создан, вам нужно найти способ его отображения. В следующем примере используется PlaceHolder
; Вы также можете заменить Panel
если ты хочешь.
ASPX
<asp:PlaceHolder runat="server" ID="PlaceHolder1"></asp:PlaceHolder>
Код позади
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
var button = new Button
{
ID = "Button" + i,
CommandArgument = i.ToString(),
Text = "Submit" + i
};
button.Command += Load_Items;
PlaceHolder1.Controls.Add(button);
}
}
private void Load_Items(object sender, CommandEventArgs e)
{
int id = Convert.ToInt32(e.CommandArgument);
// Do something with id
}
Вам нужен контейнерный контроль на вашей странице. Попробуйте панель asp например. Затем в своем коде вы делаете panel.controls.add(btnSave); И не забывайте делать это при каждой загрузке сайта. http://support.microsoft.com/kb/317515/en-us