C# 将Gridview中的列转换为ASP.NET中的模板字段

C# 将Gridview中的列转换为ASP.NET中的模板字段,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个GridView,它是通过C#代码中的查询从数据库填充的。要求是使一列不可见,另一列作为链接按钮。我设法使该列不可见,并使其他列作为链接按钮。我使用了以下代码: protected void dgvArticles_RowDataBound(object sender, GridViewRowEventArgs e) { e.Row.Cells[0].Visible = false; var titleCell = e.Row.Cells[5]; titleCel

我有一个GridView,它是通过C#代码中的查询从数据库填充的。要求是使一列不可见,另一列作为链接按钮。我设法使该列不可见,并使其他列作为链接按钮。我使用了以下代码:

protected void dgvArticles_RowDataBound(object sender, GridViewRowEventArgs e)
{
    e.Row.Cells[0].Visible = false;
    var titleCell = e.Row.Cells[5];
    titleCell.Controls.Clear();
    titleCell.Controls.Add(new LinkButton { Text = titleCell.Text, CommandName = "link", CommandArgument = e.Row.Cells[0].ToString() });
}
网格与预期的一样,但是当我单击链接按钮时,链接被禁用。另外,row命令中的代码在单击链接按钮字段时不起作用

GridView标记:

<asp:GridView ID="dgvArticles" runat="server" 
    onrowcommand="dgvArticles_RowCommand" onrowdatabound="dgvArticles_RowDataBound">
    <AlternatingRowStyle BackColor="#CCFFFF" ForeColor="#996600" />
    <HeaderStyle Font-Size="Medium" />
</asp:GridView>


有没有办法,我可以通过C#代码将绑定字段转换为模板字段。我在谷歌上搜索,但找不到任何有效的解决方案。任何关于可以做什么的链接/程序都将非常有用。感谢

RowCommand不起作用的原因是在PreInit事件期间需要将控件添加到页面中,RowBound为时已晚。最好在标记广告标签和链接中将该列设置为模板列,并相应地调整其可见性。至于以编程方式更改为模板字段,我认为这是行不通的,因为首先需要了解如何定义模板。我通过C#后端代码中的SQL查询填充GridView。是否可以在后端代码中访问GridView的模板字段?是否知道如何在回发时保持链接?是的,您可以访问RowBoundm上模板字段中的控件,您需要使用
FindControl()
。如果您所做的只是使用列的数据,那么也要查看而不是隐藏列。也许在这里描述一下你想实现什么,而不是你是如何实现的。对不起,我现在没有时间给你一个完整的答案,没关系。我会根据你所说的多做一点尝试,如果我听不懂,我会再详细阐述一点。非常感谢您抽出时间!!