2010-12-01 2 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() кода codebehind показывает, что она вызывается только при начальной загрузке страницы, а не при нажатии кнопки. Аналогичным образом, помещение точки останова в событии «BtnUpload_Click» показывает, что оно никогда не вызывается.

Это не работает как на моей собственной машине разработки, так и на сервере клиента (как при просмотре страницы сервера с моей машины, так и с самого сервера).

Важно подчеркнуть, что между этой работой и теперь она не работает, я на 90% уверен, что ничего не изменилось в отношении кода.

Любая помощь будет принята с благодарностью, так как клиент по-настоящему озабочен - и я не знаю, что вызывает ее!


EDIT # 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> 

Кто решил тег сценария нужно относиться по-разному к любой другой 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-ошибки? ASP-Button вызывает JavaScript-Funktion (WebForm_DoPostBackWithOptions), если есть JavaScript-ошибка «до» этой строки, иногда вы не можете нажать кнопку.

3

С риском отказа от участия в голосовании за отправку ответа на титульный вопрос, который не является проблемой OP ...Я предложу это предложение, которое неподвижной моей подобной проблемы:

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

Проблема заключается в том, «bgproperties» не является допустимым имя атрибута даже хотя некоторых ребята в интернете сказал, что это было. Помимо незаметного подчеркивания подчеркивания в VWD 2008 Express, ошибка не была испущена, и в противном случае страница выглядела нормально. Просто кнопка обновления и другие элементы управления входом не работали.

0

Причина для меня в том, что валидатор в другом виде на той же странице был уволен из-за того, что он был отделен от одной и той же группы проверки. Таким образом, это предотвратило отправку сообщения.

 Смежные вопросы

  • Нет связанных вопросов^_^