只想知道 发表于 2015-1-16 22:58:37

ASP网页编程之一款日期控件

优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件控件C#版:
usingSystem;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Collections;
usingSystem.Collections.Specialized;
usingSystem.Globalization;
usingSystem.Reflection;
usingSystem.Text;











namespaceAcme
{
publicclassCalendar:Control,IPostBackEventHandler,IPostBackDataHandler
{
privateString[]monthNames=newString;
privateDateTimecurrentDate=DateTime.Now;
privateStringbackColor="#dcdcdc";
privateStringforeColor="#eeeeee";

protectedoverridevoidOnInit(EventArgsE)
{
Page.RegisterRequiresPostBack(this);

currentDate=DateTime.Now;

monthNames="January";
monthNames="February";
monthNames="March";
monthNames="April";
monthNames="May";
monthNames="June";
monthNames="July";
monthNames="August";
monthNames="September";
monthNames="October";
monthNames="November";
monthNames="December";
}

protectedoverridevoidLoadViewState(ObjectviewState)
{
//Ifwevedoneapost-back,theolddatewillbeavailabletous

if(null!=viewState)
{
currentDate=DateTime.Parse((String)viewState);
}
}

publicvoidRaisePostBackEvent(StringeventArgument)
{
//Page.Response.Write("RaisePostBackEventCalled!!!");

if(eventArgument==null)
{
return;
}

//Keeptrackofolddate(foreventfiringpurposes)

DateTimeoldDate=currentDate;

if(String.Compare("NavNextMonth",eventArgument,true,CultureInfo.InvariantCulture)==0)
{
currentDate=currentDate.AddMonths(1);
}
elseif(String.Compare("NavPrevMonth",eventArgument,true,CultureInfo.InvariantCulture)==0)
{
currentDate=currentDate.AddMonths(-1);
}
else
{
intdaySelected=Int32.Parse(eventArgument);
currentDate=newDateTime(currentDate.Year,currentDate.Month,daySelected);
}
}

protectedoverrideObjectSaveViewState()
{
//SaveCurrentDateoutasviewstateforpostbackscenarios

returncurrentDate.ToString();
}

protectedoverridevoidRender(HtmlTextWriteroutput)
{
if((Page.Request.UserAgent!=null)&&
(Page.Request.Browser.Browser.ToUpper(CultureInfo.InvariantCulture).IndexOf("IE")>-1)&&
(Double.Parse(Page.Request.Browser.Version)>=5.5))
RenderUpLevel(output);
else
RenderDownLevel(output);
}

protectedvoidRenderUpLevel(HtmlTextWriteroutput)
{
output.WriteLine("<inputname="+UniqueID+"_CurrentDateid="+UniqueID+"_CurrentDatetype=hidden>");
output.WriteLine("<spanid="+UniqueID+"></span>");
output.WriteLine("<scriptlanguage=jscript>drawcalendar("+UniqueID+","+currentDate.Year.ToString()+"/"+current</p>想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的

若天明 发表于 2015-1-20 07:02:05

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

小妖女 发表于 2015-1-28 22:56:37

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

因胸联盟 发表于 2015-2-5 20:51:55

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

不帅 发表于 2015-2-13 12:04:02

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

爱飞 发表于 2015-3-3 20:59:48

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

活着的死人 发表于 2015-3-11 13:40:58

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

深爱那片海 发表于 2015-3-18 14:46:39

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

若相依 发表于 2015-3-25 23:48:08

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
页: [1]
查看完整版本: ASP网页编程之一款日期控件