ASP.NET2.0 AJAX问题

tianxinhs 2010-03-19 10:11:21
下面是我在按照书上写的敲得代码,按照书上的意思,这段代码显示的效果是:当点击inside button时只有update panel1内label上显示的时间发生变化,但是我点击后发现两个label都变了;当点击outside button时两个label也同时变化。这是为什么?要怎么改正?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>

<!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">
<script runat="server" language ="C#">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
string theTime = DateTime.Now.ToLongTimeString();
for (int i = 0; i < 3; i++)
{
theTime+="<br/>"+theTime ;
}
time1.Text = theTime;
time2.Text = theTime;
}
</script>
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<asp:Label ID="time1" runat="server" Text="Label"></asp:Label>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div style ="border-style:solid ;background-color:Gray ;">
<asp:Label ID="time2" runat="server" Text="Label"></asp:Label><br />
<asp:Button ID="Button1" runat="server" Text="Inside Button" /></div><br />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button2" runat="server" Text="Outside Button" />
</div>
</form>
</body>
</html>
...全文
131 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2010-03-20
  • 打赏
  • 举报
回复
Hi,

i have the solution:

the updatepanel does not work if the following entry is in web.config:

<xhtmlConformance mode="Legacy"/>
你找一下
十八道胡同 2010-03-20
  • 打赏
  • 举报
回复
http://forums.asp.net/p/1117243/1765979.aspx
十八道胡同 2010-03-20
  • 打赏
  • 举报
回复
应该加<Triggers>的
tianxinhs 2010-03-20
  • 打赏
  • 举报
回复
是不是在uapdatepanel里面加上这样一句:
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="Button1" />
</Triggers>
我试过了,不行啊。
polarissky 2010-03-20
  • 打赏
  • 举报
回复
关键是这一句:<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
至于UpdatePanel 的触发器,不必定义是button的单击事件也可以,因为UpdatePanel 的ChildrenAsTriggers默认是true的。UpdatePanel的 UpdateMode默认是Always,也就是只要有回发就会更新。
tianxinhs 2010-03-20
  • 打赏
  • 举报
回复
我用的是vs2005,跟这个有么有关系?
tianxinhs 2010-03-20
  • 打赏
  • 举报
回复
现在改成这样了,还是不行啊
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="2.1.aspx.cs" Inherits="Default2" %>

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>

<!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">
<script runat="server" language ="C#">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
string theTime = DateTime.Now.ToLongTimeString();
for (int i = 0; i < 3; i++)
{
theTime+="<br/>"+theTime ;
}
time1.Text = theTime;
time2.Text = theTime;
}
</script>
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<asp:Label ID="time1" runat="server" Text="Label"></asp:Label>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="Button1" />
</Triggers>
<ContentTemplate>
<div style ="border-style:solid ;background-color:Gray ;">
<asp:Label ID="time2" runat="server" Text="Label"></asp:Label><br />
<asp:Button ID="Button1" runat="server" Text="Inside Button" /></div><br />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button2" runat="server" Text="Outside Button" />
</div>
</form>
</body>
</html>
kiddkyd 2010-03-20
  • 打赏
  • 举报
回复
把要赋值的text放进去updatepanel里,设置updatepanel里面一个属性值always的改为另外一个,设置触发指向一个button的click事件
tianxinhs 2010-03-20
  • 打赏
  • 举报
回复
web.config中我并没有进行配置,如果是这里的问题,请告诉我要如何配置.
现在web.config中系统自配置如下:
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies></compilation>
<authentication mode="Windows"/>
</system.web>
</configuration>
罗纳尔迪尼奥 2010-03-19
  • 打赏
  • 举报
回复
UpdatePanel 添加一个触发的ID 指向对应的BUTTON的ID就行

62,263

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧