积极答复者
书中附的代码也报错,看不懂了。谢谢。

问题
-
Timer.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Timer.aspx.cs" Inherits="Timer" %>
<%@ Register Assembly="System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>//这里也有疑问,Version=2.0.0.0是啥意思,要不要改成其他的,<!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 runat="server">
<title>未命名页面</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>
<asp:Label id="txtTime" runat="server" __designer:wfdid="w1"></asp:Label> //这里报错:错误 1 无法识别的标记前缀或设备筛选器“__designer”。
//警告 2 验证 (ASP.Net): 属性“wfdid”不是元素“Label”的有效属性。
</ContentTemplate>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
</asp:Timer>
</form>
</body>
</html>
timer.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;public partial class Timer : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{}
protected void Timer1_Tick(object sender, EventArgs e)
{
Label txtTime = (Label)UpdatePanel1.FindControl("txtTime");
txtTime.Text = "服务器现在时间是:" + DateTime.Now.ToLongTimeString();
int red = new Random().Next(255);
System.Threading.Thread.Sleep(100); //暂停100毫秒
int green = new Random().Next(255);
System.Threading.Thread.Sleep(100);
int blue = new Random().Next(255);
txtTime.BackColor = Color.FromArgb(red, green, blue);
txtTime.ForeColor = Color.FromArgb(green, blue, red);
}
}
maiyude
答案
-
你好,Register指令用于创建程序集,这个程序集System.Web.Extensions要和你系统的C:\WINDOWS\assembly文件夹中的版本一一对应。否则不会出错。同时一般这个程序集一般我们都不用加载,项目在配置文件Web.config已经定义加载了。错误一是由这个版本号与你机器不统一导致的。
wfdid="w1" 属性不是Web服务器控件默认属性,编译器不支持,需要删除,但是HTML标签支持自定义属性,如果需要加这个属性,可以通过代码在生成HTML输出的时候添加该键值对。
jon.valett@gmail.com- 已标记为答案 KeFang Chen 2009年8月28日 5:32
-
- 已标记为答案 KeFang Chen 2009年8月28日 5:32
全部回复
-
Timer_gdiplus.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Timer_GdiPlus.aspx.cs" Inherits="Timer_GdiPlus" %>
<%@ Register Assembly="System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!--这里报错 ,错误 3 未能加载文件或程序集“System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。 --><!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 runat="server">
<title>未命名页面</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<img id="imgTime" src="" runat="server" alt="a" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
</asp:Timer>
</form>
</body>
</html>
time_gdiplus
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class Timer_GdiPlus : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{}
protected void Timer1_Tick(object sender, EventArgs e)
{
imgTime.Visible = true;
imgTime.Src = "ImageHandler.ashx?" + DateTime.Now.Second;
}
}
maiyude- 已合并 肖小勇Moderator 2009年8月22日 10:05 提问内容相同
-
你好,Register指令用于创建程序集,这个程序集System.Web.Extensions要和你系统的C:\WINDOWS\assembly文件夹中的版本一一对应。否则不会出错。同时一般这个程序集一般我们都不用加载,项目在配置文件Web.config已经定义加载了。错误一是由这个版本号与你机器不统一导致的。
wfdid="w1" 属性不是Web服务器控件默认属性,编译器不支持,需要删除,但是HTML标签支持自定义属性,如果需要加这个属性,可以通过代码在生成HTML输出的时候添加该键值对。
jon.valett@gmail.com- 已标记为答案 KeFang Chen 2009年8月28日 5:32
-
书中的代码,并不一定都是对的!况且,现在一些出版书籍,内容都是收集网上资料七拼八凑汇集而成,质量很差!
http://hi.baidu.com/2009ajun -
你好2.0.0.0是这个程序集的版本,但是我记得好像不是2.0.0.0,你检查下你是否安装了Ajax Library 改成对应的版本就可以了 另外,现在什么人都可以写书,很多书并不一定那么权威,而且很多都有错误,所以并不能完全去相信的,包括很多人网上的博客,很多时候仅可以参考下,多带着怀疑的态度去学习收获更大
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond -
- 已标记为答案 KeFang Chen 2009年8月28日 5:32