我使用ASP.NET中的UpdateProgress控件有问题呈现。我成功地使用这个控件成功创建了一个小项目,但是当我在我的解决方案中使用相同的代码创建了一个简单的.aspx页面时,它不起作用。呈现的HTML代码中存在不匹配的地方,它不起作用,它缺少部分,例如WebResource.axd的不是HTML
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ0OTI0ODUwMg9kFgICAw9kFgICBQ9kFgJmD2QWAgIDDw8WAh4EVGV4dAVqMTc6Mjc6MzA8YnIgLz4xNzoyNzozMDxiciAvPjE3OjI3OjMwPGJyIC8+MTc6Mjc6MzA8YnIgLz4xNzoyNzozMDxiciAvPjE3OjI3OjMwPGJyIC8+MTc6Mjc6MzA8YnIgLz4xNzoyNzozMGRkZIkvHCekERlfS9y4PA2asxGaEowE" />
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<script src="/WebResource.axd?d=xwJ8mgqm3wQN2acMjQykvA2&t=633941258702151333" type="text/javascript"></script>
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', document.getElementById('form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tUpdatePanel1'], [], [], 90);
有没有人有这个问题?也许我错过了一个JavaScript参考?
下面是HTML设置页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="UpdateProgressTest._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Update Progress</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
Some page content<br/>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="true" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate> Processing… </ProgressTemplate>
</asp:UpdateProgress>
More page content<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate> <div style="border-style:solid;background-color:gray;">
<asp:Button ID="Button1" runat="server" Text="Update"/><br/><br/>
<asp:Label runat="server" ID="time1"></asp:Label><br/></div><br/>
</ContentTemplate>
</asp:UpdatePanel><br/>
</div>
</form>
</body>
</html>
这里是后面部分的C#代码在同一页:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace UpdateProgressTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(4000);
// base.OnLoad(e);
string theTime = DateTime.Now.ToLongTimeString();
for (int i = 0; i < 3; i++)
{
theTime += "<br />" + theTime;
}
time1.Text = theTime;
}
}
}
正如我所说的,这个代码工作正常,在我的测试项目,但是当我用它在我的解决方案(我创建了一个新的页面,只是要确定我的其他控件未经过回调AJAX机制干扰)
谁能帮助不成?
设置DisplayAfter =“1” UpdatePanel的updateprogress控件和ChildrenAsTriggers =“true”。同样的结果,如果我理解正确的话,如果任何服务器控件使用它,webResource引用被添加,但两个页面的代码是相同的,所以这应该不成问题。我也看过web.config进行比较,涉及的部分是相同的:S – armannvg 2010-02-09 18:06:31