All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
如何使用Ajax技术开发Web应用程序_[AJAX教程]
PHP技术:txtSQL安装手册中文版_[PHP教程]
扩展GridView(一)——鼠标经过行时改变行的样式_[Asp.Net教程]
不用组件实现Ajax效果_[AJAX教程]
c#,static的全部用法收集整理_[Asp.Net教程]
PHP在网站开发中常用21种功能代码_[PHP教程]
SQL,SERVER学习,太复杂了!_mssql学习_编程技术
XMLHTTP对象应用开发的初体验_[XML教程]
定义列表 Definition Lists_[Html教程]
HTML 表格特效整理_[Html教程]
Reading number is top 10 pictures
Absolutely shocked. National geographic 50 animal photographys8
The little girl with long hair3
陪睡门马睿菈自曝写真 称首拍大尺度照片1
Plump, too plump!1
身材野火台灣美女1
Shandong jinan is about to dismantle a one hundred-year history of the building
湖南中医院的养生八图
水晶头骨造型的酒瓶
移民小国也实惠1
Black and white also sexy--YanLiu2
Download software ranking
C++教程第四版
在线棋牌游戏3.05版
小黑猫大战两米大花蛇
Call Of Duty2
Unix video tutorial14
Tram sex maniac 2 (H) rar bag1
传奇私服架设教程
WebService在.NET中的实战应用教学视频 → 第3集
Tram sex maniac 2 (H) rar bag19
Visual C++界面编程技术
归海一刀 published in(发表于) 2014/1/30 1:03:42 Edit(编辑)
Response.write方法实现日历控件的方法参考_[Asp.Net教程]

Response.write方法实现日历控件的方法参考_[Asp.Net教程]

Response.write方法实现日历控件的方法参考_[Asp.Net教程]

  在asp.net开发当中,微软给我们很多的控件,让我们非常迅速的开发,并且做出非常理想的效果,并且,效率也是非常不错的,在中小开发中,控件能解决很多的问题,同时,这些控件对我们开发人员来说,应该算是比较隐蔽的,所以我们对他的内部函数和解构都不太了解,所以很多时候也会带来麻烦.


  比如我在开发这个blog的时候,演示地址: http://www.shangducms.cn/soundbbg 就会有一些问题..
因为在设计的时候,不是通过前台控件的拖放来实现,而是通过变量来实现的.
比如 template= "...代码",我认为,这样对变量执行缓存,可以简单的和快速的执行页面,如果我将这个变量放到缓存中,打开后用response.write写出来,可能效率会更高,而不用重复读数据库.(对于数据量大还没研究过,希望有高人指点)


  那么写控件好像不太现实,因为就算写是实现不了的..那么用js实现好吗? 我们通过前面的一篇关于效率的文章可以看到,js其实对内存和cpu使用是比较大的,我看了一些html页面的组件,决定自己写一个代码.


  这里是变量(调用)的代码


template += "
日历
";
template += "
";
template = get_cat(DateTime.Now,template);
template += "
";
我们在函数中,只要获取当前月份的月,和号,datatime可以很方便,再计算已经过了多少天,比如今天是22号,那么1号也可以重载算出来
比如今天是11月22号,那么11月有30天,那么我们找到1号,从1号开始循环到30号 循环30次,而22号高亮就可以了..


protected string get_cat(DateTime time,string tem)
{
int d = time.Day;
int m = time.Month;
int y = time.Year;
int[] a=new int[50];
int now;
int m_long;
int count = 1;
tem += "
<- ";
tem += y + "年"+m+"月";
tem += "->
";


tem += "
星期日
星期一
星期二
星期三
星期四
星期五
星期六
";


now = get_day(Convert.ToDateTime(y+"-"+m+"-1"));
m_long = get_month_long(m);


for (int x = 0; x < 50; x++)
{
if (x < now)
{
a[x] = 0;
}
else
if (x > m_long+now-1)
{
a[x] = 0;
}
else
{
a[x] += count;
count++;
}
}


for (int k = 0; k < 6; k++)
{
tem += "
";
for (int i = k*7; i < k*7+7; i++)
{
if (a[i] != 0)
{
if (a[i].ToString() == DateTime.Now.Day.ToString())
{
tem += "
" + a[i] + "
";
}
else
{
tem += "
" + a[i] + "
";
}
}
else
{
tem += "
";
}
}
tem += "
";
}
tem += "
";


return tem;
}
当然我还需要知道当前的月份的长度当前时间


//获取当前时间的日期,星期几.
protected int get_day(DateTime time)
{
int d = time.Day;
int m = time.Month;
int y = time.Year;
int week;
int weekstr=0;


if (m == 1 || m == 2)
{
m += 12;
y--;
}
week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;


switch (week)
{
case 0: weekstr = 1; break;
case 1: weekstr = 2; break;
case 2: weekstr = 3; break;
case 3: weekstr = 4; break;
case 4: weekstr = 5; break;
case 5: weekstr = 6; break;
case 6: weekstr = 7; break;
}
return weekstr;
}


protected int get_month_long(int i)
{
int weekstr=0;


switch (i)
{
case 1: weekstr = 31; break;
case 2: weekstr = 28; break;
case 3: weekstr = 31; break;
case 4: weekstr = 30; break;
case 5: weekstr = 31; break;
case 6: weekstr = 30; break;
case 7: weekstr = 31; break;
case 8: weekstr = 31; break;
case 9: weekstr = 30; break;
case 10: weekstr = 31; break;
case 11: weekstr = 30; break;
case 12: weekstr = 31; break;
}


return weekstr;
}
然后就可以实现一个简单的html日历组件了


在page_load里执行 response.write(template);就可以看到模板了


在编写模板的时候,这里的模板可以想象成一个页面的实现.比如html代码都用response.write形式输出的话,很多控件就无法使用,前一段时间有个朋友一直在苦恼这个,而我也刚好遇到了这个,这只是个简单的实现,当然在效率上还有待加强,不过提出这个算是一个思路罢了.


来源:cnblogs







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.