我的一个Web应用程序中有一个简单的页面,它有以下标记:
<%@ 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"> </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 :(得分:14)
这就是原因..这也是一个非常恼人的原因!
此:
<script type="text/javascript" src="../Help/HelpPopup.js" />
应该是这个:
<script type="text/javascript" src="../Help/HelpPopup.js"></script>
无论谁决定脚本标记需要与其他所有HTML标记区别对待,都需要与Justin Bieber一起锁定在一个房间内。
答案 1 :(得分:6)
首先,你应该检查你的验证器和perhabs,评论它们进行测试。
您的网页上是否可能出现JavaScript错误? ASP-Button正在调用JavaScript-Funktion(WebForm_DoPostBackWithOptions),如果在此行之前存在JavaScript-Error,有时您无法按下按钮。
答案 2 :(得分:3)
显然客户端"return false"
正在阻止回调,这可能是以下两个原因之一:
1-the validators always return not valid
2-some client script being called on the button returns false;
答案 3 :(得分:3)
冒着被拒绝投票的风险,因为发布标题问题的答案似乎不是OP的问题...我会提供这个修复我的类似的建议问题:
<body background="images/GlobeBg.png" bgproperties="fixed">
</body>
问题是,&#39; bgproperties&#39;不是有效的属性名称,即使互联网上的一些人说它是。除了VWD 2008 Express中未被注意的波浪线下划线外,没有发出任何错误,否则页面看起来正常。简单地说,更新按钮和其他输入控件无法正常工作。
答案 4 :(得分:0)
这对我来说原因是同一页面中另一个视图的验证器被触发,因为它是同一个验证组的一部分。所以这阻止了回发。