无法访问页面后面的代码中的控件

时间:2014-06-13 19:50:33

标签: c# asp.net .net

我在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>

以下是我的代码隐藏代码。

protected void Page_Load(object sender, EventArgs e)
{            
    LinkButton1.Text = "Test";
}

以下是我得到的错误

  

当前上下文中不存在名称“LinkBut​​ton1”

3 个答案:

答案 0 :(得分:3)

您的网页上没有LinkButton - 您的模板中LinkButton的一列ItemTemplate中有一个GridView UpdatePanel。在您能够引用LinkButton本身之前,您需要覆盖所有这些图层。

答案 1 :(得分:1)

您使用的是错误的方法,正确的方法是在按钮控件标签本身中指定文本。此按钮位于gridview内部,因此将重复此按钮。你不能参考假设有一个属性的10个渲染按钮吗?您必须循环并在行数据绑定事件上更改其文本。

答案 2 :(得分:0)

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