如何在c#后面以编程方式创建一个asp:按钮(没有点击处理)

时间:2013-07-26 16:05:54

标签: c# asp.net button aspbutton

以下按钮提供了我需要的确切功能,但它必须以编程方式完成,因为我将根据一些变量制作多个,但后者我可以弄清楚我是否可以创建下面的按钮作为启动器:

<asp:Button runat="server" OnCommand="Load_Items" CommandArgument="1" text="Submit" />

有关我一直在做什么的更多信息here

编辑:

我查看了问题like this,但看不到从Button btnSave = new Button();到页面上的按钮的位置。此外,我发现的大多数问题似乎都是使用C#来处理点击,但我希望有一个OnCommand属性来处理它。

如果我执行以下操作并使用“btn”的开发人员工具进行搜索,则无法获得任何结果。

Button btnSave = new Button();
btnSave.ID = "btnSave";
btnSave.Text = "Save";
btnSave.CssClass = "btn";

2 个答案:

答案 0 :(得分:11)

以下是使用Command事件创建Button的方法。

创建后,您需要找到一种显示方式。以下示例使用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
}

答案 1 :(得分:0)

您的页面需要容器控件。以asp面板为例。然后在你的代码隐藏中你做panel.controls.add(btnSave);并且不要忘记在每个站点加载时都这样做。 http://support.microsoft.com/kb/317515/en-us