【问题标题】:How to create an asp:button programmatically in c# behind (without click handling) [closed]如何在后面的 c# 中以编程方式创建一个 asp:button(没有点击处理)[关闭]
【发布时间】:2013-07-27 00:03:05
【问题描述】:

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

<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";

【问题讨论】:

  • 那么,到目前为止,您使用了哪些搜索词来研究这个问题?
  • 你有“这就是我想要的”部分,但是“这就是我到目前为止所做的”部分呢?为什么不能只在代码中制作一个按钮?
  • 我无法制作按钮,因为我不知道如何制作,因此我提出了问题。我已经编辑了 OP,以对以前的搜索添加一些说明以及这有何不同。

标签: c# asp.net button aspbutton


【解决方案1】:

以下是使用 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 给出完整答案。
  • 感谢您的完整答案,它确实有效,唯一的问题是这假设按钮的数量是已知的,但我以编程方式创建它们的原因是它可能会有所不同。有什么建议吗?
  • 我尝试根据按钮的数量以编程方式添加占位符,然后替换它们,但这听起来很糟糕而且不起作用。
  • 只需在设计时创建一个面板,并将所有以编程方式创建的按钮添加到这个单个面板。我不知道,但即使使用占位符控件,您也应该能够做到这一点。不要替换任何东西,只需添加按钮即可。
  • @dudledok Kai 的评论是正确的。您在设计时需要一个 Panel 或 PlaceHolder。 (或者您可以将控件直接添加到form 控件,但我不喜欢这种方法。)我更新了我的答案以显示多个按钮。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2014-01-06
    相关资源
    最近更新 更多