【问题标题】:cannot change GridView Caption无法更改 GridView 标题
【发布时间】:2025-12-31 23:35:01
【问题描述】:

GridView .Caption 设置一次后似乎无法更改。

一旦我设置标题,然后在回发中更改它,在代码中似乎一切正常,在页面 PreRender、GridView PreRender 和任何地方

我不知道该怎么做 - 在页面上(以及 GridView 也是)PreRender 事件同时调试 .Caption 是正确的,但无论如何它都会使用旧标题呈现

虽然我更改了它,但页面似乎是使用 set-once 标题呈现的。

我什至尝试将它放到 updatePanel 并更新它,但它没有帮助。

任何人都可以提出原因吗? 提前致谢。

【问题讨论】:

    标签: asp.net gridview caption


    【解决方案1】:

    在这个例子中似乎在这里工作,你能发布你的代码吗?

    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                System.Collections.Generic.List<int> Values = new System.Collections.Generic.List<int> { 1, 2, 3, 4, 5, 6, 7 };
                grdTest.DataSource = Values;
                grdTest.DataBind();
            }
        }
    
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            grdTest.Caption = "test grid " + DateTime.Now.ToString();
    
    
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
                <asp:GridView ID="grdTest" Caption="test grid" runat="server">
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                hello
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
    
                <asp:Button ID="btnSubmit" runat="server" onclick="btnSubmit_Click" Text="Submit"  />
    
        </div>
        </form>
    </body>
    </html>
    

    【讨论】:

    • 代码相当长,但这是它从 page_load 调用的相关部分整个代码中没有其他分配给 .Caption dgPublications.Caption = string.Format("Order# {0} 产品类型", _currentOrderID); dgOrderContent.Caption = _currentPubID.HasValue ? string.Format("{0} content", Dictionaries.GetInstance(((MDSPage)this.Page).Database).PublicationIDs[_currentPubID.Value]) : string.Format("Order # {0} content", _currentOrderID) ; dgOrderContent.DataBind();
    • 您是否关闭了视图状态?如果您将其关闭,您可能需要在数据绑定后的每个页面加载时设置它。