2017-07-06 4 views
0

Ich habe eine Schaltfläche, die auf einer ziemlich einfachen Seite ist. Es akzeptiert eine Datei, und wenn Sie den Senden-Button drücken, wird eine Datei geladen. Nichts davon ist noch codiert, da es besagt, dass die Schaltfläche im aktuellen Kontext nicht existiert, wenn versucht wird, den Ereignishandler für die Schaltfläche zu codieren.ASP.NET-Schaltfläche existiert nicht im aktuellen Kontext

-Code Behind:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.HtmlControls; 

public partial class mass_upload : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     btnSubmitMass.ServerClick += new EventHandler(btnSubmitMass_Click); 
    } 

    protected void btnSubmitMass_Click(object sender, EventArgs e) 
    { 

    } 
} 

Webseite:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="mass-upload.aspx.cs" Inherits="mass_upload" %> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Submissions</title> 
    <link href="/favicon.png" rel="icon"> 
    <link href="css/uikit.min.css" rel="stylesheet"> 
    <link href="css/uikit.css" rel="stylesheet"> 
    <link href="css/styles.css" rel="stylesheet" /> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> 
    <link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet"> 
    <script src="https://use.fontawesome.com/50bcaa1a6b.js"></script> 
    <script src="js/uikit.min.js"></script> 
    <script src="js/uikit.js"></script> 
    <script src="js/uikit-icons.min.js"></script> 
</head> 
<body runat="server"> 
    <div class="uk-section uk-section-xsmall" style="background-color: #820024; margin:0px;"> 
     <div class="uk-container uk-container-large"> 
      <div uk-grid=""> 
       <div class="uk-width-1-2"> 
        <a href="index.aspx"><img src="images/image.png"></a> 
       </div> 
       <div class="uk-width-1-2"> 
        <div class="uk-float-right"> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
    <nav class="uk-navbar-container" style="background-color: rgba(138,121,103,1); color: #ffffff;" uk-navbar="mode: click"> 
     <div class="uk-navbar-center"> 
      <ul class="uk-navbar-nav uk-text-primary" style="color: #ffffff;"> 
       <li class="uk-active"> 
        <a href="index.aspx">Home</a> 
       </li> 
       <li> 
        <a href="manual-upload.aspx">Manual Submit</a> 
       </li> 
       <li> 
        <a href="mass-upload.aspx">Mass Submit</a> 
       </li> 
      </ul> 
     </div> 
    </nav> 
    <div class="uk-section uk-margin-remove-bottom uk-padding-remove-bottom"> 
     <div class="uk-container"> 
      <div class="uk-grid"> 
       <div class="uk-text-center uk-width-1-1"> 
        Click in the field below, browse to the file to be uploaded and click "Open". Once the file name is visible in the form field, click the Submit button. 
       </div> 
      </div> 
     </div> 
    </div> 
    <div class="uk-section" runat="server"> 
     <div class="uk-container uk-container-large uk-margin uk-margin-left uk-margin-right uk-padding" style="border:1px solid #cccccc;" runat="server"> 
      <form id="form1" runat="server"> 
       <fieldset class="uk-fieldset" runat="server"> 
        <!-- ****************************************************** --> 
        <div class="uk-grid-small [email protected] uk-text-center" uk-grid> 
         <div> 
          <div class="uk-margin" uk-margin> 
           <div uk-form-custom="target: true"> 
            <input type="file"> 
            <input class="uk-input uk-form-width-medium" disabled placeholder="Select file" type="text"> 
           </div> 
           <input type="button" id="btnSubmitMass" runat="server" value="Submit" class="uk-button uk-button-default" /> 
          </div> 
         </div> 
        </div> 
        <!-- ****************************************************** --> 
       </fieldset> 
      </form> 
     </div> 
    </div> 
    <div class="uk-grid" style="margin-bottom:15px;"> 
     <div class="uk-text-center uk-width-1-1"> 
      Copyright &copy 
     </div> 
    </div> 
</body> 
</html> 
+0

Versuchen Sie es zu entfernen und dann erneut auf der Aspx-Seite hinzufügen. Manchmal, wenn Sie den Code kopieren/einfügen, wird Visual Studio manchmal ein wenig verwirrt. – VDWWD

+0

Ich habe dies getan, ich habe die Seite gelöscht und neu erstellt und hat immer noch den gleichen Fehler. – Caveman42

+0

Seltsam. Ich habe Ihren ganzen Code kopiert und mein VS findet den Knopf ... – VDWWD

Antwort

0

Sie können es versuchen, manuell zu deklarieren:

protected HtmlInputButton btnSubmitMass; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    btnSubmitMass.ServerClick += new EventHandler(btnSubmitMass_Click); 
} 

protected void btnSubmitMass_Click(object sender, EventArgs e) 
{ 

} 

Normalerweise sollte die Steuerung automatisch deklariert werden, wenn Sie hinzufügen runat="servser" und speichern Sie dann die aspx-Seite. Sie können also auch einfach versuchen, es umzubenennen, zu speichern, dann wieder in Ihre gewünschte ID umzubenennen und erneut zu speichern.

+1

Gibt es keinen Grund, den Button nicht zu einem einfachen '' zu machen und auf die manuelle Deklaration und den EventHandler-Anhang zu verzichten? (Echt neugierig) – Santi

+0

Dies besagt, dass es bereits die Definition von btnSubmitMass enthält. Und keine @Santi, ich habe überall woanders Input type = "button" verwendet, daher habe ich auf dieser Seite keinen Grund zum Ändern gefunden. – Caveman42

+0

@Santi: Es ist ein HTML-Button, ich weiß nicht, warum OP es braucht –

Verwandte Themen