无法访问代码隐藏页中的控件

本文关键字:控件 代码隐藏页 访问 | 更新日期: 2023-09-27 18:08:28

我在Gridview中声明了Linkbutton控件,但在后面的代码中我无法访问它。下面是我的aspx页面代码。

<%@ Page="" Language="C#" AutoEventWireup="true" MasterPageFile="~/MainMaster.Master"
    CodeBehind="Page.aspx.cs" Inherits="IntakeLibrary.Page" %>
  <%@ Register="" Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
      <asp:UpdatePanel ID="updatePanel" runat="server">
        <contenttemplate>
          <asp:GridView ID="grdView" runat="server">
            <Columns>
              <asp:TemplateField HeaderText="Text">
                <ItemTemplate>
                  <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
                </ItemTemplate>
              </asp:TemplateField>
            </Columns>
          </asp:GridView>
        </contenttemplate>
      </asp:UpdatePanel>
    </asp:Content>

下面是我的codebehind代码。

protected void Page_Load(object sender, EventArgs e)
{            
    LinkButton1.Text = "Test";
}
下面是我得到的错误

名称'LinkButton1'在当前上下文中不存在

无法访问代码隐藏页中的控件

您的页面上没有LinkButton -您在UpdatePanel模板的GridViewItemTemplate的一列中有LinkButton。在你能够引用LinkButton本身之前,你需要到达所有这些图层。

你正在使用错误的方法,正确的方法是在按钮控件标签本身分配文本。此按钮位于网格视图内,因此将重复使用。你不能引用假设10个带有一个属性的渲染按钮?您必须循环遍历并更改它们的text on row数据绑定事件

您可能必须使用DataGrid_RowDataBound事件处理程序并以正确的模板类型获取控件的句柄,然后对传递给事件处理程序的项在链接按钮上执行查找控件。我将很快给出一个代码示例。