动态创建ASPxButtons

时间:2018-06-14 09:47:41

标签: c# asp.net

我想创建一个下载列表,其中每个可用文件都有自己的ASPxButton,我想动态创建它们,而不是手动创建它们并动态地将它们设置为可见。

由于我的.aspx.cs文件中没有表单但在.aspx代码的表格中创建了按钮,因此我无法使用form.AddButton方法。关于如何做这样的事情的任何想法?

不确定这是否有帮助,但这里是我已经拥有的2个按钮的代码:

<dx:TabPage Name="Downloads" Text="Downloads" Enabled="false">
            <ContentCollection>
                <dx:ContentControl runat="server">
                    <table class="grid_centered">
                        <tr>
                            <td>
                                <dx:ASPxButton ID="btnDownload0" runat="server" Text="Anschreiben" Theme="Metropolis" CssClass="button centered" OnClick="btn_Click" Width="300px"></dx:ASPxButton>                                
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <dx:ASPxButton ID="btnDownload1" runat="server" Text="Serie 1" Theme="Metropolis" CssClass="button centered" OnClick="btn_Click" Width="300px" Visible="false" Enabled="false"></dx:ASPxButton>
                            </td>
                        </tr>
                    </table>
                </dx:ContentControl>
            </ContentCollection>
        </dx:TabPage>

1 个答案:

答案 0 :(得分:0)

我对dx不熟悉:ASPxButton但我假设它类似于aspx:Button。要动态创建控件,您必须在Page_Load()事件中创建控件。

protected void Page_Load()
{
    //get your files
    string targetDirectory = "your directory";
    string [] fileEntries = Directory.GetFiles(targetDirectory);    
    int i = 0;
    foreach(string fileName in fileEntries)
    {
        ASPxButton btn = new Button();
        btn.Text = fileName;
        btn.ID = "btnDownload" + i.ToString();
        btn.CssClass = "button centered";
        btn.Attributes.Add("Theme", "Metropolis");
        //add any other properties you need

        //add the event handler
        btn.Click += new EvenHandler(btn_Clik);
        form.AddButton(btn);
    }

}