我遇到Visual Studio问题。我有一个带GridView的页面。后面的代码识别GridView很好,但没有其中的元素。我尝试在GridView之前放置一个标签,它能够识别它。这意味着我的aspx代码文件中存在一些错误,但是我已经查看了它并且对我来说都很好看。
我尝试删除.designer.cs文件和转换为Web应用程序'。我试过复制代码,删除文件,然后重新创建它们。我还尝试了许多清理和重建,并重新启动Visual Studio。仍然没有成功。我非常感谢任何指导。
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="True" CodeBehind="users.aspx.cs" Inherits="Ticket_System.admin.users" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<asp:GridView ID="userGrid" runat="server" OnRowEditing="userGrid_RowEditing" DataKeyNames="END_USER_ID" AutoGenerateEditButton="True" AutoGenerateColumns="false" OnRowUpdating="userGrid_RowUpdating" OnRowCancelingEdit="userGrid_RowCancelingEdit">
<Columns>
<asp:TemplateField HeaderText="User #">
<ItemTemplate>
<asp:Label ID="idLabel" runat="server" Text='<%# Bind("END_USER_ID") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="idText" runat="server" Enabled="false" Text='<%# Bind("END_USER_ID") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Access">
<ItemTemplate>
<asp:Label ID="accessLabel" runat="server" Text='<%# Bind("ACCESS_ROLE.DESCRIPTION") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User">
<ItemTemplate>
<asp:Label ID="userLabel" runat="server" Text='<%# Bind("USER_NAME") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="userText" runat="server" Text='<%# Bind("USER_NAME") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Password">
<ItemTemplate>
<asp:Label ID="passLabel" runat="server" Text='<%# Bind("PASSWORD") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="passText" runat="server" Text='<%# Bind("PASSWORD") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="First">
<ItemTemplate>
<asp:Label ID="firstLabel" runat="server" Text='<%# Bind("FIRST_NAME") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="firstText" runat="server" Text='<%# Bind("FIRST_NAME") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last">
<ItemTemplate>
<asp:Label ID="lastLabel" runat="server" Text='<%# Bind("LAST_NAME") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="lastText" runat="server" Text='<%# Bind("LAST_NAME") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Active">
<ItemTemplate>
<asp:Label ID="activeLabel" runat="server" Text='<%# Bind("ACTIVE_FLAG") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="activeText" runat="server" Text='<%# Bind("ACTIVE_FLAG") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Content>
编辑:只想澄清一些事情。我的意思是在后面的代码中甚至都没有识别控件。例如firstLabel.Text
给我一个&#34;在当前上下文中不存在&#34;错误。
答案 0 :(得分:0)
尝试使用FindControl()方法。
foreach(GridViewRow row in userGrid.Rows) {
if(row.RowType == DataControlRowType.DataRow) {
string idText = (string)row.FindControl("idText");
}
}