惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tenable Blog
WordPress大学
WordPress大学
小众软件
小众软件
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
T
The Exploit Database - CXSecurity.com
Attack and Defense Labs
Attack and Defense Labs
Simon Willison's Weblog
Simon Willison's Weblog
C
CXSECURITY Database RSS Feed - CXSecurity.com
量子位
有赞技术团队
有赞技术团队
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Fortinet All Blogs
S
Schneier on Security
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Spread Privacy
Spread Privacy
F
Full Disclosure
Scott Helme
Scott Helme
GbyAI
GbyAI
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
Cloudbric
Cloudbric
云风的 BLOG
云风的 BLOG
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
Hacker News - Newest:
Hacker News - Newest: "LLM"
Security Latest
Security Latest
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
L
Lohrmann on Cybersecurity
PCI Perspectives
PCI Perspectives
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Secure Thoughts
C
Check Point Blog

博客园 - 清风徐来,水波不兴

健康同步专家 隐私政策 健康同步专家介绍 IOS动画实现(3)UIView封装的动画 IOS动画实现(2)ImageView自带动画 IOS动画实现(1)几种实现方式 学习CEGUI亟待解决问题二:消息事件传递机制问题 学习CEGUI亟待解决问题一:文本控件的格式问题 ERP初阶(四):MRP基本构成 ERP初阶(三):MRP基本原理 ERP初阶(二):ERP概念与历程 ERP初阶(一):走近ERP 协议开发 中移动CMPP2.0协议API(四) 协议开发 中移动CMPP2.0协议API(二) 协议开发 中移动CMPP2.0协议API(三) 协议开发 中移动CMPP2.0协议API(一) 短信网关简介 SP 短信开发-PROVISION接口实现-反向取消实例代码 SP 短信开发-PROVISION接口实现-正向订购实例代码 SP 短信开发-PROVISION接口实现1
第一讲
清风徐来,水波不兴 · 2007-04-29 · via 博客园 - 清风徐来,水波不兴

⒈首先是关于日历的问题,要在初始化页面的代码段中写入Calendar1.SelectedDate=DateTime.Now来初始化日历控件使其显示的日期为当前的日期。

⒉另外是广告,广告控件设计到一个XML文件的问题。可以这样理解,广告控件的目的是将制定的XML文件以及有关的图片文件按设置显示出来。
比如说以下Ad.xml文件

 1<?xml version="1.0" encoding="utf-8" ?>
 2<Advertisements>
 3    <Ad>
 4        <ImageUrl>./image/hp1.gif</ImageUrl>
 5        <NavigateUrl>http://www.yesky.com</NavigateUrl>
 6        <AlternateText>欢迎访问!</AlternateText>
 7        <Keyword>Computers</Keyword>
 8        <Impressions>4</Impressions>
 9    </Ad>
10    <Ad>
11        <ImageUrl>./image/hp2.gif</ImageUrl>
12        <NavigateUrl>http://www.yesky.com</NavigateUrl>
13        <AlternateText>欢迎访问!</AlternateText>
14        <Keyword>Computers</Keyword>
15        <Impressions>3</Impressions>
16    </Ad>
17    <Ad>
18        <ImageUrl>./image/hp3.gif</ImageUrl>
19        <NavigateUrl>http://www.yesky.com</NavigateUrl>
20        <AlternateText>欢迎访问!</AlternateText>
21        <Keyword>Computers</Keyword>
22        <Impressions>2</Impressions>
23    </Ad>
24    <Ad>
25        <ImageUrl>./image/hp4.gif</ImageUrl>
26        <NavigateUrl>http://www.yesky.com</NavigateUrl>
27        <AlternateText>欢迎访问!</AlternateText>
28        <Keyword>Computers</Keyword>
29        <Impressions>1</Impressions>
30    </Ad>
31</Advertisements>

然后在我的default.aspx文件的前台代码中写入

<asp:AdRotator id="adrot1" BorderWidth="1" runat="server" AdvertisementFile="Ad.xml" />

这样,在该页面显示的时候,就对应地显示出4张图片了,并且对应地址为xml文件中的
ImageUrl节点中的内容,
NavaigateUrl为点击图片的时候指向的超链接地址,
AlternateText指鼠标悬停在图片上的时候显示的文字,
Keyword为分类,
Impressions为每次刷新广告显示的几率

⒊计数器:
在计数器这个单项里面值得注意的有四点。
第一:在Global.asax.cs里面的一些事件里面写下相应的处理方法。例如:Application_Start事件里面对应的是应用程序开始运行的时候触发的事件。Session_Start事件对应每次会话开始的时候发生,而Session_End事件则在会话结束时发生。

第二:在邵老师计数器的解决方案中,采取的是读取Counter.txt文本文件中的数字来表示和记录网站访问人数的:首先在Application_Start事件中读取已经存在的数据,代码如下:

1StreamReader sr=new StreamReader(Server.MapPath("Counter.txt"));
2            int iNum=int.Parse(sr.ReadLine());
3            Application.Lock();
4            Application["Counter"]=iNum;
5            Application.UnLock();
6            sr.Close();

然后在Session_Start事件中更新Application["Counter"]的值,并将其写回到Counter.txt中,代码如下:

1Application.Lock();
2            Application["Counter"]=Convert.ToInt32(Application["Counter"])+1;
3            Application.UnLock();
4            StreamWriter sw=new StreamWriter(Server.MapPath("Counter.txt"),false);
5            sw.Write(Application["Counter"]);
6            sw.Close();

第三:用图片将计数器里面的数字表示出来。代码如下:

 1    System.Web.UI.WebControls.Image Img;
 2            Label lbl;
 3            string count  ;
 4            String graph;
 5            lbl=new Label();
 6            lbl.Text="该站点已被访问次数:";
 7            Container.Controls.Add(lbl);
 8            count =Application["Counter"].ToString();
 9            for (int i=0;i<count.Length;i++)
10            {
11                Img=new System.Web.UI.WebControls.Image();       //动态生成Image控件
12                graph=count.Substring(i,1);
13                Img.ImageUrl=graph + ".gif";
14                Container.Controls.Add(Img);  //加载到控件容器
15            }

在这里需要学习的在于动态生成图片的原理。
第四:Html代码依赖后台处理代码的不同方式。这里就涉及到AutoEventWireup属性了,这个属性一般写在* aspx文件的代码顶部,如下所示:

<%@ Page  language="c#" Codebehind="Counter.aspx.cs" AutoEventWireup="false" Inherits="CASE1._2Counter.Counter"%>

默认的AutoEventWireup的属性值为true,此时该页面依赖的逻辑代码写在前台脚本中,如果声明为true以后,则逻辑代码写在Codebehind的属性值所指的*.cs文件中。

将代码写在后台*.cs文件中是常见的方法,而将代码写在前台页面中的时候,则不能写太长以免影响前台代码的可阅读性,这样,就可以利用语句

 1<head>
 2    <Title>使用全站点计数器</Title> 
 3    <!--#Include file="GlobCount.inc"-->
 4        <script language="c#" runat="server">
 5private void TestT(Object sender,System.EventArgs e)
 6{
 7        Test();
 8}

 9        
</script>
10        </head>

这里的inc文件包含在项目中,是一个文本文件,用来存储逻辑代码:如

 1<script language=c# runat="server">
 2void GlobalGraph(Panel Container)
 3 {
 4        Image Img;
 5        Label lbl;
 6        string count  ;
 7        String graph;
 8        lbl=new Label();
 9        lbl.Text="该站点已被访问次数:";
10        Container.Controls.Add(lbl);
11        count =Application["Counter"].ToString();
12        for (int i=0;i<count.Length;i++)
13        {
14           Img=new Image();       //动态生成Image控件
15           graph=count.Substring(i,1);
16           Img.ImageUrl=graph + ".gif";
17           Container.Controls.Add(Img);  //加载到控件容器
18        }
19}
20void Test()
21{
22    Response.Write("aa");
23}
24</script>

这样,*.inc文件里面的所有方法以及变量就可以被页面里面的对象调用了。