You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中无法在GridView添加Template Field的问题求助

GridView添加TemplateField后不显示也未出现在源代码的解决办法

在设计页面通过「点击GridView元素→编辑列→添加Template Field→确定」的操作添加自定义列后,该字段既不在设计视图显示,也没出现在源代码中,现有相关代码如下:

<div class="row">
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" OnSelecting="SqlDataSource1_Selecting1" 
        ConnectionString="<%$ ConnectionStrings:elibraryDBConnectionString %>" 
        SelectCommand="SELECT * FROM [book_master_tbl]"></asp:SqlDataSource>
    <div class="col">
        <asp:GridView ID="GridView1" AlternatingRowStyle-CssClass="table table-striped table-bordered" 
            runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged2" 
            AutoGenerateColumns="False" DataKeyNames="book_id" DataSourceID="SqlDataSource1">
            <AlternatingRowStyle CssClass="table table-striped table-bordered"></AlternatingRowStyle>
            <Columns>
                <asp:BoundField DataField="book_id" HeaderText="book_id" ReadOnly="True" SortExpression="book_id"></asp:BoundField>
            </Columns>
        </asp:GridView>
    </div>
</div>

可以按以下步骤排查解决:

  • 直接手动添加TemplateField到源代码
    既然设计界面操作失效,最直接的方式是在GridView的<Columns>节点内手动写入TemplateField代码,示例如下:

    <asp:TemplateField HeaderText="自定义操作列">
        <ItemTemplate>
            <%-- 这里可以放置任意控件或绑定数据,比如显示book_id或添加按钮 --%>
            <asp:Label ID="lblBookId" runat="server" Text='<%# Eval("book_id") %>'></asp:Label>
            <asp:Button ID="btnEdit" runat="server" Text="编辑" OnClick="btnEdit_Click" />
        </ItemTemplate>
    </asp:TemplateField>
    

    添加后保存,设计视图和运行时都会正常显示该列。

  • 清理项目并重启Visual Studio
    有时Visual Studio的设计视图缓存会导致操作不生效,执行以下步骤:

    • 点击菜单栏「生成」→「清理解决方案」
    • 关闭Visual Studio,重新打开项目
    • 再次尝试通过设计界面添加TemplateField
  • 验证设计界面操作的正确性
    重新走一遍操作流程,确保每一步都正确:

    1. 选中页面上的GridView控件
    2. 右键点击选择「编辑列」(或点击控件右上角的小箭头,选择「编辑列」)
    3. 在「可用字段」列表中找到「TemplateField」,点击「添加」按钮
    4. 确认「选定的字段」列表中已经出现该TemplateField,再点击「确定」按钮
    5. 保存页面后查看源代码和设计视图
  • 检查AutoGenerateColumns属性
    确认GridView的AutoGenerateColumns属性保持为False,如果该属性被意外改为True,会导致自定义列无法正常显示。

内容的提问来源于stack exchange,提问作者Supriya Pandey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:05:16