c# - 如何以编程方式添加 TemplateField

标签 c# asp.net c#-4.0 gridview

请考虑这段代码:

<asp:TemplateField>
     <ItemTemplate>
         <asp:LinkButton runat="server" ID="linkmodel" Text='<%#Eval("MenuItem") %>' 
                         CommandName='<%#Eval("CommandName") %>'
                         OnCommand="linkmodel_Click" 
                         OnClientClick="return confirm('Are You Sure')">
         </asp:LinkButton>
     </ItemTemplate>
</asp:TemplateField>

如何使用 C# 以编程方式添加此列?

谢谢

最佳答案

这可能有助于开始:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    { 
        var linkField = new TemplateField();
        linkField.ItemTemplate = new LinkColumn();
        GridView1.Columns.Add(linkField);
    }
}


class LinkColumn : ITemplate
{
    public void InstantiateIn(System.Web.UI.Control container)
    {
        LinkButton link = new LinkButton();
        link.ID = "linkmodel";
        container.Controls.Add(link);
    }
}

但是:

Although you can dynamically add fields to a data-bound control, it is strongly recommended that fields be statically declared and then shown or hidden, as appropriate. Statically declaring all your fields reduces the size of the view state for the parent data-bound control.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.templatefield.aspx

关于c# - 如何以编程方式添加 TemplateField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12581088/

相关文章:

c# - doublevalue.ToString() 在 C# 中丢失小数位

asp.net - 无法正确添加服务引用

c# - 是否可以在 Dynamics CRM (2013/2016) 中以编程方式禁用审计?

C# Xml 反序列化,忽略 XML 中的数据

c# - 将类放在不同的文件夹中但在相同的 namespace 下调用它们?

c# - ASP.NET 中的自定义项目符号列表项

c# - json 字符串不适合我使用 Xamarin 创建的类

c# - ASP Net Core 属性路由和双正斜杠

c# - GeoCoordinateWatcher 经纬度标注

c# - 限制复制和粘贴 URL 以打开页面