不会发图片,很抱歉,有谁会传图片的教下我具体步骤。。。
问题是这样的,我有2个gridview,我想实现鼠标在其中一个gridview中的数据行中移动时,另一个gridview实现与其有关的信息,
我的思路是给第一个gridview数据行加个onmouseover事件,同时传个参数(字段“IP”为要传的参数),通过前台这个js事件,触发页面上一个button.click,这个button.click后呢,给第二个gridview绑定数据,也不知道这个思路有没有问题。。。
问题就是这个参数怎么传的问题。。。
具体实现时,我大概这么做的。。
//for (i = 0; i < GridView1.Rows.Count; i++)
//{
// //首先判断是否是数据行
// if (e.Row.RowType == DataControlRowType.DataRow)
// {
// //当鼠标
// e.Row.Attributes.Add("onmouseover", "这个地方不知道怎么写");
// }
//}
posted @ 2008-06-02 19:01 甩掉裤衩凭风吹 阅读(464) 评论(1)
编辑
| Asp.net是微软.Net战略的一个组成部分。它相对以前的Asp有了很大的发展,引入了许多的新机制。本文就Asp.net页面的生命周期向大家做一个初步的介绍,以期能起到指导大家更好、更灵活地操纵Asp.net的作用。 |
| 当一个获取网页的请求(可能是通过用户提交完成的,也可能是通过超链接完成的)被发送到Web服务器后,这个页面就会接着运行从创建到处理完成的一系列事件。在我们试图建立Asp.net页面的时候,这个执行周期是不必去考虑的,那样只会自讨苦吃。然而,如果被正确的操纵,一个页面的执行周期将是一道有效而且功能强大的工具。许多开发者在编写Asp.net的页面以及用户控件的时候发现,如果知道整个过程中发生了什么以及在什么时候发生将对完成整个任务起到很重要的帮助作用。下面我就向大家介绍一下一个Asp.net页面从创建到处理完成过程中的十个事件。同时,也向大家展示如何在这些事件中添加自己的代码以达到预定的效果。 |
| 一个页面的控件(以及页面本身)最初应被正确的初始化。通过在你的C#文件的构造函数中声名所有对象(如图1),页面就知道要创建多少对象以及它们的类型。一旦你在你的构造函数中声名了所有的对象,你就可以通过继承类、方法、事件或是属性访问它们。然而,如果你的一些对象是在Aspx文件中指定的一些控件,那么这些控件就没有属性可言了。同时,通过代码访问它们会产生一些意外的错误,因为这些控件实例是没有一个确定的创建顺序的(如果它们是被一起创建的)。还有,你可以通过OnInit来重载初始化事件,图示如下(图1): |
| 在初始化事件后,所有控件只可以通过它们的ID被引用访问(因为还没有相应的DOM可使用)。在LoadViewState这个事件中,所有的控件将获得它们的第一个属性:Viewstate属性。这个属性最终将被返回给服务器以判断这个页面是已经被用户访问完毕还是仍然在被用户所访问。Viewstate属性以“名称/值”对的字符串方式被保存,它包含了控件的文本以及值等信息。该属性被存储在一个隐藏的<input>控件的值属性里,在请求页面时被传递。这种方式比起Asp3.0的维持、判断页面状态的方式有了很大的进步啊。还有,你可以重载LoadViewState事件函数来对相应的控件进行值设定。下图(图2)是一个例子: |
| 三.用LoadPostData处理Postback数据 |
| 在页面创建的这个阶段,服务器对页面上的控件提交的表单数据(在Asp.net中称postback数据)进行处理。当一个页面提交一个表单时,框架就在每个提交了数据的控件上执行一个IPostBackDataHandler接口操作。然后页面执行LoadPostData事件,解析页面,找到每个执行了IpostBackDataHandler接口操作的控件,并用恰当的postback数据更新这些控件状态。Asp.net是通过用NameValue集中的“名称/值”对和每个控件的唯一的ID匹配来实现这一操作的。所以,在Asp.net的页面上每个控件必须有一个唯一的ID,不可以出现几个控件共有ID的情况。即使是用户自定义的一些控件,框架也会赋予它们各自唯一的ID的。在LoadPostData事件后,就要执行下面的RaisePostDataChanged事件了。 |
| 在Load事件中,对象都实例化了。所有的对象第一次被布置在DOM页面(在Asp.net中称控件树)里了并且可以通过代码或是相关的位置被引用。这样,对象就可以很容易的从客户端获得诸如宽度、高度、值、可见性等在Html中的属性值。在Load事件中,当然还有像设置控件属性等操作的发生。这个过程是整个生命周期中最重要、最主要的,你可以通过调用OnLoad来重载Load事件,图示如下(图3): |
| 就像在上面提到的那样,这个事件是发生在所有的控件执行了IPostBackDataHandler接口操作并被正确的postback数据更新后的。在这个过程中,每个控件都被赋予一个布尔值来标志该控件有没有被更新。然后,Asp.net就在整个页面上寻找任何已被更新过的控件并执行RaisePostDataChanged事件操作。不过,这个事件是要在所有的控件都被更新了以及Load事件完成后才进行的。这样就保证了一个控件在被postback数据更新前,别的控件在RaisePostDataChanged事件中是不会被手动改变的。 |
| 当由postback数据在服务器端引起的事件都完成后,产生postback数据的对象就执行RaisePostBackEvent事件操作。可是会有这种情况,由于一个控件状态的改变使得它将表单返回给服务器或是用户点击了提交按钮使得表单返回给服务器。在这种情况下应该有相应的处理代码来体现事件驱动这一面向对象(OOP)编程原则。由于要满足呈现给浏览器的数据的精确性要求,在一系列postback事件中RaisePostBackEvent事件是最后发生的。 |
| 在postback过程中改变的控件不应在执行功能函数被调用后更新。也就是说,任何由于一个预期的事件而改变的数据应该在最终的页面上被反映出来。你可以通过修改RaisePostBackEvent函数来满足你的要求,图示如下(图4): |
| 可以改变对象并将改变保存的最后时刻就是这一步――预先呈递对象。这样,你可以在这一步对控件的属性、控件树结构等作出最后的修改。同时还不用考虑Asp.net对其作出任何改变,因为此时已经脱离了数据库调用以及viewstate更新了。在这一步之后,对对象的所有修改将最终被确定,不能被保存到页面的viewstate中了。你可以通过OnPreRender来重载这一步。 |
| 所有对页面控件的修改完成后viewstate就被保存了。对像的状态数据还是保留在隐藏的<input>控件里面,呈现给Html的对象状态数据也是从这里取得的。在SaveViewState事件中,其值能被保存到viewstate对象,然而这时在页面上控件的修改却不能了。你可以用SaveViewState来重载这一步,图示如下(图5): |
| 运用Html创建给浏览器输出的页面的时候Render事件就发生了。在Render事件过程中,页面调用其中的对象将它们呈递给Html。然后,页面就可以以Html的形式被用户的浏览器访问了。当Render事件被重载时,开发者可以编写自定义的Html代码使得原先生成的Html都无效而按照新的Html来组织页面。Render方法将一个HtmlTextWriter对象作为参数并用它将Html在浏览器上以网页的形式显示。这时仍然可以做一些修改动作,不过它们只是客户端的一些变化而已了。你可以重载Render事件,图示如下(图6): |
| 在呈递给Html完成后,所有的对象都应被销毁。在Dispose事件中,你应该销毁所有在建立这个页面时创建的对象。这时,所有的处理已经完毕,所以销毁任何剩下的对象都是不会产生错误的,包括页面对象。你可以重载Dispose事件,见图6。 |
| 以上就是Asp.net页面生命周期中的十个事件。每次我们请求一个Asp.net页面时,我们都经历着同样的过程:从初始化对象到销毁对象。通过了解Asp.net页面的内部运行机制,我相信大家在编写、调试代码的时候会更加游刃有余的。 |
也可以参考
http://www.5ivb.net/Info/33/Info32834/
posted @ 2007-11-17 18:41 甩掉裤衩凭风吹 阅读(46) 评论(0)
编辑
程序是将思维和思路,通过相应的语言来实现点,不同的语言只是语法或函数名不一样而已。下面的通过“关于日期天数计算的几种方法”来体会一下。
一 C#中的方法
1.通过.NET平台提供的函数,当前的日期加一个月,然后有新的日期与当前日期对比,即减去多余的天数。
DateTime dtNow = DateTime.Today;
DateTime dtNextMonth = dtNow.AddMonths( 1 );
TimeSpan tsSpan = dtNextMonth.Subtract( dtNow );
int nDay = tsSpan.Days;
Response.Write( nDay.ToString() );
2.已知某个日期curdate需要计算该日期所在月份有多少天
一种比较巧妙的思路:将日期curdate变成下个月的1号,得到一个新的日期newdate
用newdate减去1天可得到newdate前1天的日期predate
predate的日期号即为curdate日期所在月份中一个月的天数
DateTime curdate = DateTime.Today;
int nYear = curdate.Year;
int nMonth = curdate.Month + 1;
DateTime newdate = Convert.ToDateTime( nYear.ToString() + " " + nMonth.ToString() + " 1" );
DateTime predate = newdate.AddDays( -1 );
Response.Write( predate.Day.ToString() );
二 SQL中的方法
--思路同上:
DECLARE @dtLastTime DATETIME
DECLARE @strTime VARCHAR(8)
SET @strTime = CONVERT(VARCHAR(4),YEAR(GETDATE())) + '-' +CONVERT(VARCHAR(2),MONTH(GETDATE())+1) + '-1'
SET @dtLastTime = CONVERT(DATETIME,@strTime ) - 1
SELECT Day(@dtLastTime) AS '本月天数'
posted @ 2007-11-12 23:36 甩掉裤衩凭风吹 阅读(763) 评论(0)
编辑
下面是我很敬佩的一位大哥写的,我把他全帖出来了...
blog是什么?是心情?是体会?是想法?是什么?我也不知道......反正有人让我写,然后我就写了,今天开始写第一篇,没有理由,也没有想法,只想说我的blog......
学做软件四年,做了四年软件,到现在也没有悟出软件到底是个什么东西,或者根本就不是东西,既然不是东西那还做它干什么,我也不知道,反正有人需要,然后我就做软件。其实在这里我把软件形容成“做”并不贴切,软件怎么会是“做”出来的呢?
记得回武汉之前去香港一家电信公司面试,在复试时,技术总监问我:你会哪些技术?或者最擅长什么?当时我并不知道那技术总监问我是什么意思,因为初试时已经问我问了2个多小时,我回答说:我没什么最擅长的,我只知道我写的代码要值钱!当时技术总监一愣,然后笑着说:你被录取了!事后我觉得我回答问题并不像是搞技术的,而更像一个诗人。事实的确如此,诗人最成功的不是他的文学功底有多深,也不是他对语言多精通,而是在他能用最准确的词语来表达自己的感情。如果没有最真挚的情感,有再多的词语也表达不出来那种意境。“做”软件何尝不是如此呢?软件没有感情,也不能用华丽的词语表达出来,但他肯定是代表了做软件人的思想。电脑并不能理解人的思想,它只能听从于软件,软件就是电脑的脑部神经,而软件是由电脑语言表达出来的,他承载了写软件的人的思想,一个没有思想的人做软件,即使有再好的电脑语言给他,他也表达不出来。有人肯定会说我的观点偏,因为懂得软件技术的人才是真正的做软件的人,其实在我眼里,软件技术只是思想的一种聚集,举个不成文的例子,去北京可以乘飞机,也可以坐火车,也可以搭汽车,当然步行也能到达,如果时间允许的话,软件技术也是一样,有好的软件技术当然可以帮助我们节省时间和效率,没有可用的软件技术我们也一样能实现所需要的软件,当然时间要充足,一句话:技术不会,可以花时间学,思想没有,技术再好也不行。
我们做什么事情都会事先考虑清楚(不排除无章法的人)什么该做,怎么做,然后再去做,但一定有一个结果,去超市不一定要买东西,但一定要知道有没有你要买的东西,否则我们去超市干什么?(当然闲人除外)。做软件也一样,我们不一定要卖给别人,但我们写的代码一定要值钱,如果不值钱,你做他干什么?有人会反感,提钱多俗啊,的确,所有事情不能用钱来衡量,但我认为软件不一样,软件代表人的思想,为使用者带来了效益和方便,如果软件不值钱,那做软件人的思想就不值钱,做软件的人是靠思想吃饭的,有钱没思想,虽生犹死,有思想没钱,生不如死,所以我们做软件一定要值钱,否则,生不如不生......
posted @ 2007-11-12 23:13 甩掉裤衩凭风吹 阅读(90) 评论(0)
编辑
美国电影《阿甘正传》相信不少人看过,就算没看过估计也听说过,这部电影是一部典型的“反智电影”,何谓反智电影呢?我个人理解并不是我们不需要智商,而是有时我们不能过分依赖智商,过分依赖智商反而会让我们失败得更痛苦,更彻底。
阿甘在影片中被塑造成了美德的化身,诚实、守信、认真、勇敢而重视感情,对人只懂付出不求回报,也从不介意别人拒绝,但他知道爱他的妈妈,相信他妈妈,是他妈妈给了他“跑”的信念。
他豁达、坦荡地面对生活。他把自己仅有的智慧、信念、勇气集中在一点,他什么都不顾,只知道凭着直觉在路上不停地跑,他跑过了儿时同学的歧视、跑过了大学的足球场、跑过了炮火纷飞的越战泥潭、跑过了乒乓外交的战场、跑遍了全美国,并且最终跑到了他的终点。
在别人眼里他的成功简直是无法让人相信,但事实是他成功了,整个影片中始终贯穿了阿甘不停在跑的镜头,所以更让人无法接受他成功的现实,为什么会旁人无法相信呢?难道阿甘真的是无法成功的吗?看第一遍的时候我同样不相信,认为导演在愚弄观众,当我看第三遍的时候,我发现我忽略了一个细节,那就是:跑不需要智商,需要的是腿和目标,有时甚至连目标都不需要,当你跑到目标时发现其实你离目标并不远。
我们做任何事情都会事先设想结果,当然人都会往好的想,可是人一旦有了自己的想法,就会对自己的想法有感情,不希望自己的想法落空,也不希望被别人推翻,结果把自己孤立在自己的想法里,而且还笑别人智商低,理解不了自己的想法,导致事与愿为。当然有想法是对的,想法不容易实现就是因为动用智商太多的结果,如果我们少用智商,多用“腿”,再远的路我们也能跑出来,而且在跑的过程很快乐,很轻松,没有烦心的事,路在自己的脚下不知不觉的宽阔起来,迎来终点。
我们从小学考中学考智商,从中学考大学还在考智商,工作了才发现,工作不需要高智商,需要是“腿”,需要理解,需要信念,需要耐心......就是因为我们从小到大被人圈入了一个“智商”的陷阱,认为只要聪明就有出息,就能成功,所以导致我们在工作时手忙脚乱,还产生一肚子怨气,认为公司是“慧眼不识金”,其实不然,举个例子,从小到大,我们一直在学数学,最后到超市买东西才发现不需要我们用数学!当然,我不是否定读书无用,我一向认为:万般皆下品,唯有读书高是对的。
做软件开发同样如此,如果我们在做软件过程中以智商论事,我想这个世界上根本不可能有像微软那样成功的企业,有人说软件是智慧的结晶,不错,但我认为智慧不是智商,智慧更多的代表了“情商”的意味。如果有一天我们能以“腿”更多的代替“智商”去“跑”,我想我们会达到我们的目标的:路的对错靠智商辨别,路的远近靠靠腿去丈量。
posted @ 2007-11-12 23:10 甩掉裤衩凭风吹 阅读(43) 评论(0)
编辑
不要迷失在技术的海洋中
技术就好像一片汪洋大海,越深入越望不到边际。就拿自己的体验来说吧,2000年的时候在学校搞ASP,觉得网页开发就是这么简单,把数据库中的数据格式化一下显示在页面上,把用户的输入组装成添加删除和修改的SQL提交到数据库中去。几年后的今天,我对自己了解或听说过的ASP.NET相关(注意:仅仅是ASP.NET或者说网站制作相关)技术列了一下:


在这些语言、技术、工具、理念中,每一项都能扩展出很多还要细化的技术,每一项要达到熟悉的程度可能都会花去一年的时间,如果这些都要达到熟悉的话,大概也就快退休了。不但如此,每一个技术都在飞速发展,今年语言到了明年就有更简单的语法,今年的技术到了明年就有更好的技术来替代,今年的工具到明年已经面目全非,今年的理念到了明年已不再流行。
或许你现在:
l 在为面试而去搜索接口和抽象类的区别;
l 在为新技术来不及学习而烦恼;
l 在为看不懂高深的技术文章而烦恼;
l 在为项目不能提高自己的编码水平而发愁;
l …………
我觉得:
l 不管做什么,学什么,一要心态好,二要态度好。所谓心态好就是不要着急、不用担心;所谓态度好是多分享、多讨论、学出自己的心得。分享的意义是很大的,在分享之后的认知水平往往比分享之前的高,而且在很多时候分享给别人1点,别人能回报给你2点。有些人在团队中不愿意分享,怕团队中的其它人水平提升了影响到自己的地位,其实这种想法是没有什么道理的,也是对自己不利的。有些人又在羡慕别人的技术NB,崇拜高手,为自己的技术差感到烦恼,如果你对自己信心又有什么技术是花时间学不到的那?
l 从学习的内容上来说,要坚持两个原则,如果你没有时间的话,那么学新技术不如学基础、学应用不如学思想。举例来说,如果你只熟悉C#的基本语法的话,那么学好C#这个语言比学会编写留言本更有意义,如果你关注MVC、ORM的话,那么学习它们的思想比学会使用MONORAIL以及NHIBERNMATE更好。技术虽然一直在变,但是越是基础和越是抽象的技术变化越慢,越是偏向应用越是具体的技术变化越是快,从性价比上说,学习基础知识性价比更高。再举一个直白的例子,DIY电脑的时候,在显示器上多花费500元的意义一定比在显卡上多花费500元的意义大,而就是有些人宁可在显卡上多花费500元。在很多大型软件公司,招聘的时候只看人(看人品、看聪明程度、看态度)不看技术的,因为它们需要的是能快速发展,适应企业文化的人,而不需要你那些所谓的精通和熟悉。
l 不要过于专著于技术,这里的技术指工作中用于开发的技术。在几年之后,当你只有.NET可以和你的孩子分享的话,是不是太可悲了。在软件行业,技术虽然一定程度决定了薪水、决定了职位,但是我们的生活并不是100%是工作,有时间为技术而发愁,为何不综合提升自己的其它能力呢?并且随着职位的上升,往往沟通能力、经济知识以及文学艺术修养比技术显得更重要,这个时候叹息自己过于专著技术往往为时过晚。
l 虽然国内很多公司的技术层次不同和文化也有差异,但是在大多数的时候公司或别人能教给你的东西很少,要学东西还是要靠自己主动。有的人一直觉得在公司学不到东西,想换一个环境,往往他换了一个环境之后发现还是学不到什么东西。国内的项目大多还是急功近利的,不要期望有这么多微软研究院,空闲的时间踏踏实实学一些东西比到处找工作强很多,做项目的时候多分享一下自己的心得给团队成员比抱怨团队技术实力差强很多。
l 在工作中,要始终提醒自己“谦恭”、“真诚”和“规矩”,谦恭真诚对别人,把规矩留给自己。技术再强也要“谦恭”,离开了“谦恭”的技术就会失去光芒,社会再险恶也要“真诚”,一切虚伪会在“真”诚面前低头,职位再高也要“规矩”(不迟到,不早退,以身作则),否则再大的权力也只能变成人员的流失。如果能做到这六个子,那么无论你的技术怎么样,无论你到哪里都会得到领导的重用,在事业上有所发展。
现在的你不再:
l 为面试而去搜索接口和抽象类的区别,而是在面试的时候告诉考官你并不知道它们之间的区别,但是愿意在一个月内系统学习面向对象的知识;
l 为新技术来不及学习而烦恼,而是明确了自己最需要学习的技术,一边学习一边分享;
l 为看不懂高深的技术文章而烦恼,而是拿起《C#高级编程》踏踏实实从头到底边阅读边做试验;
l 为项目不能提高自己的编码水平而发愁,而是在进度允许的情况下尽可能让项目变得可扩展、可维护以及高效;
l …………
看到身边的一些人为技术所累,在技术的海洋中航行的很辛苦,因此有了本文。本文的主要目的是提醒大家找到方向,时不时回岸边休息一下,思考一下新的航向,不要迷失在技术的海洋中让自己筋疲力尽,在技术之外的有很多东西的意义远大于技术,请大家踊跃讨论…………
posted @ 2007-10-29 16:08 甩掉裤衩凭风吹 阅读(46) 评论(0)
编辑
不爽。奶酪吃不久了,别人要收回了。。。、
为了奶酪,不能玩游戏了。
就是真的吃不长,希望是我丢掉,不能被奶酪甩!
努力,奋斗!·
posted @ 2007-07-05 19:26 甩掉裤衩凭风吹 阅读(23) 评论(0)
编辑
摘要: 几句不可不看的经典人生语句 凡事都得趁早 防人之心不可无 选择有益的朋友 千万不能模仿他人 要有强烈的好奇心 对自己没好处的事要懂得装傻来拒绝去做 要常锻炼身体 要学会放松心情 要懂得照料自己 保证充足的睡眠 先下手遭殃,后下手更遭殃 学习是为了更好的预测风险 永远朝前看 梦~~不都是美好的 不要将自己置于尴尬境地 一旦被威胁首先要有对策 千万不要想当然 时刻做好准备,机会来的时候千万不可以没有子...
阅读全文
posted @ 2007-06-20 14:27 甩掉裤衩凭风吹 阅读(234) 评论(0)
编辑
摘要: 几句不可不看的经典人生语句 凡事都得趁早 防人之心不可无 选择有益的朋友 千万不能模仿他人 要有强烈的好奇心 对自己没好处的事要懂得装傻来拒绝去做 要常锻炼身体 要学会放松心情 要懂得照料自己 保证充足的睡眠 先下手遭殃,后下手更遭殃 学习是为了更好的预测风险 永远朝前看 梦~~不都是美好的 不要将自己置于尴尬境地 一旦被威胁首先要有对策 千万不要想当然 时刻做好准备,机会来的时候千万不可以没有子...
阅读全文
posted @ 2007-06-20 14:25 甩掉裤衩凭风吹 阅读(311) 评论(0)
编辑
摘要: 一.人之所以痛苦,在于追求错误的东西。 二、与其说是别人让你痛苦,不如说自己的修养不够。 三、如果你不给自己烦恼,别人也永远不可能给你烦恼。因为你自己的内心,你放不下。四、好好的管教你自己,不要管别人。 五、不宽恕众生,不原谅众生,是苦了你自己。 六、别说别人可怜,自己更可怜,自己修行又如何?自己又懂得人生多少? 七、学佛是对自己的良心交待,不是做给别人看的。 八、福报不够的人,就会常常听到是非;...
阅读全文
posted @ 2007-05-20 16:31 甩掉裤衩凭风吹 阅读(536) 评论(0)
编辑