2016-07-29 6 views
0

Ich habe ein Problem mit Visual Studio. Ich habe eine Seite mit einem GridView. Der dahinter stehende Code erkennt die GridView-Feineinstellung, aber keines der darin enthaltenen Elemente. Ich habe versucht, ein Label vor das GridView zu setzen und es konnte es erkennen. Dies würde bedeuten, dass ein Fehler in meiner aspx-Code-Datei vorhanden ist, aber ich habe es mir angesehen und alles sieht gut aus.Visual Studio - Steuerelemente nach bestimmten Punkt nicht erkannt

Ich habe versucht, löschen .designer.cs-Datei und 'In Web-Anwendung konvertieren'. Ich habe versucht, den Code zu kopieren, die Dateien zu löschen und neu zu erstellen. Ich habe auch zahlreiche Säuberungen ausprobiert und Visual Studio neu erstellt und neu gestartet. Immer noch kein Erfolg. Ich würde jede Anleitung sehr schätzen.

<%@ 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> 

EDIT: Ich wollte nur etwas klären. Was ich meine ist, dass die Steuerelemente überhaupt nicht im Code dahinter erkannt werden. Zum Beispiel gibt mir einen Fehler "existiert nicht im aktuellen Kontext".

Antwort

0

Verwenden Sie die FindControl() - Methode.

foreach(GridViewRow row in userGrid.Rows) { 
    if(row.RowType == DataControlRowType.DataRow) { 
     string idText = (string)row.FindControl("idText"); 
    } 
}