Asp.Net GridView 在运行时添加模板字段列

问题描述 投票:0回答:2

我在 ASP.NET 中使用 C# 的 GridView。我在运行时将 Templatete 字段列添加到 GridView,列已成功添加,行中包含所需的文本。但是填充 GridView 后执行任何按钮单击事件控件从行中删除,在行中我在 Templete 字段中有 Literal 和 Textbox 控件作为 ItemTempete.....

任何帮助...

datagridviewcolumn
2个回答
0
投票
<asp:GridView runat="server" ID="gridView">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton runat="server" ID="lnkTest"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

然后在您的 rowdatabound 事件中您可以找到它并执行您想要的操作

void gridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        Entity entity = e.Row.DataItem as Entity;

        LinkButton lnkTest = e.Row.FindControl("lnkTest") as LinkButton;
        lnkTest.CommandArgument = entity.ID.ToString();
        lnkTest.Text = entity.Name;
    }
}

0
投票

要在 ASP.NET 中运行时向 GridView 添加新的模板列,您可以创建一个新的 TemplateField 并定义其属性,包括项目模板,它指定应如何显示数据。以下是如何在代码隐藏中执行此操作的基本示例:

TemplateField templateField = new TemplateField();  
templateField.HeaderText = "New Column";  

templateField.ItemTemplate = new CustomTemplate(ListItemType.Item);  
GridView1.Columns.Add(templateField); 

您还需要定义实现 ITemplate 的 CustomTemplate 类,以控制数据在该列中的呈现方式。这允许您自定义新列中每个单元格的内容。

© www.soinside.com 2019 - 2024. All rights reserved.