2010-12-01 51 views
1

我有一個簡單的頁面,在我們的網絡應用之一,它具有以下的標記:ASP.Net按鈕不回發養

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="NewUpload.aspx.cs" Inherits="Mass_Upload.NewUpload" MasterPageFile="~/Master" Title="Document Mass Upload" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
    <link rel="Stylesheet" type="text/css" href="./../CSS/ScrollingTable.css" /> 
    <script type="text/javascript" src="../Help/HelpPopup.js" /> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="CenterH1" runat="server"> 
    Document Mass Upload <a href="javascript:loadHelpVid(5)"><img style="Border:None;" src="../Help/help_icon.gif" /></a> 
</asp:Content> 
<asp:Content ID="Content3" ContentPlaceHolderID="CenterBody" runat="server"> 
    <h3>Add New Upload</h3> 
    <table class="list"> 
     <tr> 
      <td class="label" style="text-align:right;">Local File:</td> 
      <td class="normal"> 
       <asp:FileUpload ID="fuFilename" runat="server" Width="405" /> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Text="*" 
          ErrorMessage="A file to upload is required" 
          Display="Dynamic" 
          ControlToValidate="fuFilename" 
          ValidationGroup="DocumentUpload" 
          runat="server" /> 
      </td> 
     </tr> 
     <tr> 
      <td class="label" style="text-align:right;">Document Description:</td> 
      <td class="normal"> 
       <asp:TextBox ID="txtDescription" runat="server" Width="405" MaxLength="50" /> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator3" Text="*" 
          ErrorMessage="Document Description is a required field" 
          Display="Dynamic" 
          ControlToValidate="txtDescription" 
          ValidationGroup="DocumentUpload" 
          runat="server" /> 
      </td> 
     </tr> 
     <tr> 
      <td class="label" style="text-align:right;">Document Type:</td> 
      <td class="normal"> 
       <asp:DropDownList ID="ddDocType" runat="server" Width="405"/> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator2" Text="*" 
          ErrorMessage="Document Type is a required field" 
          Display="Dynamic" 
          ControlToValidate="ddDocType" 
          ValidationGroup="DocumentUpload" 
          runat="server" /> 
      </td> 
     </tr> 
     <tr> 
      <td class="label" style="vertical-align:top;text-align:right;">Customer Types:</td> 
      <td class="normal"> 
       <asp:Label ID="lblSingleCustomer" Text="Specific Code:" runat="server" /><asp:TextBox ID="txtSingleCustomer" runat="server" Width="100px" /><br /> 
       <asp:CheckBoxList ID="cblCustomerTypes" runat="server" Width="405px" RepeatDirection="Horizontal" RepeatColumns="5" RepeatLayout="Table" CellPadding="10" CellSpacing="0" /> 
      </td> 
     </tr> 
     <tr> 
      <td class="normal" colspan="2">&nbsp;</td> 
     </tr> 
     <tr> 
      <td class="normal" colspan="2"><asp:Label ID="lblError" runat="server" Text="" ForeColor="Red"/></td> 
     </tr> 
     <tr> 
      <td class="normal" colspan="2"> 
       <asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClick="BtnCancel_Click" CssClass="medium" /> 
       <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="BtnUpload_Click" CssClass="medium" /> 
      </td> 
     </tr> 
    </table> 
</asp:Content> 

它用來做工精細,但現在,沒有明顯的變化代碼/設計,「上傳」和「取消」按鈕不再有效。

在代碼隱藏的Page_Load()方法中放置一個斷點表明它只在最初加載頁面時調用,而不是在按下按鈕時調用。 同樣,在「BtnUpload_Click」事件中放置一個斷點表明它從不被調用。

這現在不適用於我自己的開發機器和客戶端的服務器(無論是從我的機器還是從服務器本身瀏覽服務器頁面)。

重要的是要強調,在這個工作和它現在不工作,我90%確定沒有任何改變關於代碼。

任何幫助將不勝感激,因爲客戶是正確的焦慮 - 並且我不知道是什麼原因造成的!


編輯#1

下面是一個按鈕的隱藏代碼:

protected void BtnUpload_Click(object sender, EventArgs e) 
    { 
     if (DataAccess.CheckIfMassUploadAlreadyExists(fuFilename.FileName)) 
     { 
      lblError.Text = "A file with the specified name already exists within the system."; 
      return; 
     } 
     else 
     { 
      try 
      { 
       UploadFile(); 
      } 
      catch(Exception ex) 
      { 
       lblError.Text = ex.Message;// +"\nUsername:" + System.Web.HttpContext.Current.User.Identity.Name; 
       return; 
      } 
     } 
    } 

+0

背後的代碼是什麼樣的按鈕事件? – Josh 2010-12-01 11:55:35

+0

在上面添加了它 - 謝謝 – Sk93 2010-12-01 11:59:15

+0

請查看頁面的HTML源代碼(右鍵單擊 - >查看源代碼),並在這裏發佈按鈕的相關部分..好奇看最終的HTML看起來像也許它會給一些提示。 – 2010-12-01 12:36:45

回答

13

這是原因..這也是一個非常惱人的原因!

這:

<script type="text/javascript" src="../Help/HelpPopup.js" /> 

應該是這樣的:需要

<script type="text/javascript" src="../Help/HelpPopup.js"></script> 

誰決定script標籤區別對待每一個其它的HTML標籤,需要被鎖在一個房間與賈斯汀比伯。

2

顯然是一個客戶端"return false"阻止回調,這可能是兩個原因:

1-the validators always return not valid 
2-some client script being called on the button returns false; 
6

首先你應該檢查你的校驗和perhabs,他們註釋掉了測試。

是否有可能在您的頁面上顯示JavaScript錯誤? 如果在此行之前存在JavaScript錯誤,有時您不能按下按鈕,則ASP按鈕正在調用JavaScript-Funktion(WebForm_DoPostBackWithOptions)。

3

面臨被拒絕投票發佈標題問題答案的風險,該問題似乎不是OP的問題......我會將此建議其固定類似的問題:

<body background="images/GlobeBg.png" bgproperties="fixed"> 
</body> 

問題是,「BGPROPERTIES」不是一個有效的屬性名稱即使在互聯網上的一些人說,這是。除了在VWD 2008 Express中未引起注意的扭曲下劃線之外,沒有發現任何錯誤,頁面看起來很正常。簡單地說,更新按鈕和其他輸入控件不起作用。

0

對我來說,原因是同一頁面中另一個視圖上的驗證器被解僱,因爲它是相同驗證組的一部分。所以這阻止了回發。