Кнопка ASP.Net не поднимает обратную передачу - PullRequest
1 голос
/ 01 декабря 2010

У меня есть простая страница в одном из наших веб-приложений, которая имеет следующую разметку:

    <%@ 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% уверен, что ничего не изменилось в отношении кода.

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


РЕДАКТИРОВАТЬ # 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;
            }
        }
    }

.

Ответы [ 5 ]

14 голосов
/ 01 декабря 2010

Вот причина ... и это тоже очень раздражает!

ЭТО:

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

Должно быть ЭТО:

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

Тот, кто решил, что тег сценария должен обрабатываться по-другому, чем любой другой тег HTML, должен быть заблокирован в комнате с Джастином Бибером.

6 голосов
/ 01 декабря 2010

Прежде всего вы должны проверить свои валидаторы и perhabs, закомментировать их для теста.

Возможно ли, что на вашей странице отображаются ошибки JavaScript? Кнопка ASP вызывает функцию JavaScript (WebForm_DoPostBackWithOptions), если перед этой строкой имеется ошибка JavaScript «до», иногда вы не можете нажать кнопку.

3 голосов
/ 15 ноября 2013

Риск того, что вас проголосуют за публикацию ответа на заглавный вопрос, который, как представляется, не является проблемой ОП ... Я предложу это предложение, которое исправило мою подобную проблему:

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

Проблема в том, что 'bgproperties' НЕ является действительным именем атрибута , хотя некоторые ребята в Интернете сказали, что это так.За исключением незаметного подчеркивания ворсинок в VWD 2008 Express, никакой ошибки не было, и страница выглядела нормально.Просто кнопка обновления и другие элементы управления вводом не работали.

3 голосов
/ 01 декабря 2010

очевидно клиентская сторона "return false" предотвращает обратный вызов, это может быть одной из двух причин:

1-the validators always return not valid
2-some client script being called on the button returns false;
0 голосов
/ 19 июля 2016

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

...