秋天的云

博客园 首页 新随笔 联系 订阅 管理
  10 Posts :: 7 Stories :: 24 Comments :: 0 Trackbacks

公告

2006年6月2日 #

摘要: 当匿名用户登录成为注册用户后,删除原匿名用户profile信息阅读全文
posted @ 2006-06-02 15:29 秋天的云 阅读(271) 评论(0) 编辑

2006年6月1日 #

摘要: 现在AJAX很火,不要忘记ASP.NET2.0自带的ClientCallback,也是非常好用!阅读全文
posted @ 2006-06-01 14:55 秋天的云 阅读(633) 评论(3) 编辑

2006年5月18日 #

引用:http://www.lvjiyong.com/item/prototype1http://www.lvjiyong.com/item/prototype2http://www.lvjiyong.com/item/prototype3

prototype.js 是Sam Stephenson写的一个Javascript的小框架(实际上是一个函数库),该框架首页是:http://prototype.conio.net/

下面的内容来源自http://www.sergiopereira.com/articles/prototype.js.html,本人学习的同时作个笔记,与读者分享一下经验心得。

吕的部落格:www.Lvjiyong.Com

 这次介绍几个相类的函数:$()、$F()、$A、$H$R

$() 相当于document.getElementById()其中间的参数可以是一个ID或多个ID。

示例:

<HTML>
<HEAD>
<TITLE> Test Page </TITLE>
<script src="prototype-1.4.0.js"></script>
<script>
function test1()
{
var d = $('myDiv');
alert(d.innerHTML);
}
function test2()
{
var divs = $('myDiv','myOtherDiv');
for(i=0; i<divs.length; i++)
{
alert(divs[i].innerHTML);
}
}
</script>
</HEAD>
<BODY>
<div id="myDiv">
<p>吕的部落格欢迎您,我是内容一ID为myDiv</p>
</div>
<div id="myOtherDiv">
<p>吕的部落格欢迎您,我是内容二ID为myOtherDiv</p>
</div>
<input type="button" value="取得myDiv的HTML代码" onclick="test1();"><br>
<input type="button" value="取得myDiv与myOtherDiv的HTML代码" onclick="test2();"><br>
</BODY>
</HTML> 

哈哈哈,我是内容一ID为myDiv

呵呵呵我是内容二标题为myOtherDiv

知道怎么用了吧就是使用$('控件ID')取得该ID对应的对象。不懂?无话说了去看看Javascript比较基本的东西吧

好了下面说说$F()这个函数,它实际是是$()的特别版本而已,$()返回具有ID的对象,而$F()只是返回具有ID的对象的值(注意首先这个对像要有value这个属性,返回的也只是一个值而不是对像)该函数主要应用于取得输入框内的值。

示例:

<script>
function test3()
{
alert(  $F('userName')  );
}

</script>

<input type="text" id="userName" value="www.Lvjiyong.Com">
<input type="button" value="取得userName的值" onclick="test3();">

userName:

$A()的用法就更有特殊性,主要应用于具有NodeLists 属性的对象.使用$A('对象ID')返回的是一组Array对象,哈哈哈,这回又是对象了,还是看一下实际应用的例子吧:

<script>

function showOptions(){
var someNodeList = $('lstEmployees').getElementsByTagName('option');
var nodes = $A(someNodeList);

nodes.each(function(node){
alert(node.nodeName + ': ' + node.innerHTML);
});
}
</script>

<select id="lstEmployees" size="3" >
<option value="1">Lvjiyong.com</option>
<option value="2">www.Lvjiyong.Com</option>
<option value="3">吕的部落格</option>
</select>

<input type="button" value="显示options" onclick="showOptions();" >

$H()是一个对象转化为Hash对象,我还没实际用过,看样子主要可能还是用于将对象转为参数方便传送(.NET序列化简单明了版?),我们看看示例吧:

<script>
function testHash()
{
//let's create the object创建对象
var a = {
first: 10,
second: 20,
third: 30
};

//now transform it into a hash转为Hash
var h = $H(a);
alert(h.toQueryString()); //转为字符串,哈哈哈可以使用Ajax方式把这个对象的属性传到后台了displays: first=10&second=20&third=30
}

</script>

下面说一下今天最后要说的最后一个函数:$R()

The $R() function is simply a short hand to writing new ObjectRange(lowerBound, upperBound, excludeBounds). 哈这绝对是个很有意思的函数:指定上下限即交回你有序的Range

示例:

<script>
function demoDollar_R(){
var range = $R(10, 20, false);
range.each(function(value, index){
alert(value);
});
}

</script>

<input type="button" value="$R的例子" onclick="demoDollar_R();" >

Try.these() 的作用和C#里的try{}catch{try{}catch{.....}}作用一样,就是按顺序执行一串的函数,直到这些函数的其中某个正常工作,这个看起来没用的(因为javascrpt本身就有try{}catch(e){}但是实际上这个东西用在某些时候却让你感到很轻常很自然,比如些有语句Firefox与IE不兼容,这种情况下可以分别写两个专门对Firefox与IE的函数,然后使用

<script>
function testTry{
return Try.these(
function() {专门针对IE},
function() {专门针对Firefox}
);//吕的部落格:http://www.lvjiyong.com
}
</script>

这样事先我们不用再检查浏览器类型,当是IE时,执行专门针对IE自动跳出,而Firefox则在执行专门针对IE时不能正常工作,所以将继续尝试执行专门针对Firefox,如此可以针对更广的应用,让我们的感觉也觉得轻松。

本文主要讲如何使用prototype.js中的Ajax进行一些小应用方面的开发,不讲Ajax原理。

在prototype.js中我以后会用到的有两个Ajax类,一个是Ajax.Request 别一个是Ajax.Updater。AjaxRequest继承自Ajax.Base。Ajax.Updater继承自Ajax.Request ,说这些没有别的意思,主要是想让读者明白,随着继承的延续,类的功能也将特殊化。

我是个粗人不过讲那么多道理,就举个例子开始吧。哦,差点忘了说一件事,Ajax在普通浏览器如XP下是默认不能跨域请求,而在2003下不加入可信站点是不可使用的。所以有些应用不能一味地使用Ajax实现,不然呵呵,记得给自己留后路,像Gmail,它默认使用Ajax实现,但如果系统不能执行Ajax的话就提示用户可以使用普通HTML实现。还有所谓跨域就是如我的域名是www.LvJiyong.com 我可以使用Ajax请求www.LvJiyong.com 的所有允许访问的资源,而假如我想访问www.1818city.com 域名下的资源浏览器将会拒绝,有些人想用Ajax实现文件上传,可行性就更夸张,必须把安全级别降到最低才行。另:在本地测试时是允许访问任何域下的资源的,不要企图在网站上直接使用Ajax取得其它网站下的资料,在ASP里我们可以使用服务端的XMLHTTP实现,而在ASP.NET下允许的方法更多,在此不说了,又开始废话。

好,现在开始举例,先讲一下特殊中的特殊Ajax.Updater。不知道读者有没有尝试注册本BLOG的会员,验证码就是使用Ajax.Updater去实现的,在页面载入的时候注册一个事件来监视验证码输入框的变化,当输入的长符符合验证码长度时,自动触发向Ajax.Updater验证验证码的页面发出请求,系统如果检测验证码错误,则返回“验证码错误”,否则返回空值,表示正确。而Ajax.Updater的应用灵巧的就是在这种情况下的使用(只需要显示返回值的情况)。

<script>
function getHTML()
{
var url = 'http://www.lvjiyong.com/1818city/Default.aspx';
var pars = 'test=lvjiyong.com';

 var myAjax = new Ajax.Updater(
'placeholder',
url,
{
method: 'get',
parameters: pars
});

/*

使用GET方法主要是传递少数的参数,记住只适合传送少量的参数传下参数,在'http://www.lvjiyong.com/1818city/Default.aspx'是没有对参数进行处理的,只是显示如何传递参数

传递参数分为Post与GET大家应该都是知道的,当Post时就用Request.Form["参数名"]取值,Get时用Request.QueryString["参数值"]取值。处理回数据后响应请求,响应的文本内容将会自动填充到ID为placeholder的容器中。

使用Post提交格式如:(主要注意是传递Post数据,当然也可以在Post时在url中写上参数传递querystring值。)

var postData = "内容";

var myAjax = new Ajax.Updater(
'placeholder',
url,
{
method: 'post',
postBody:postData});

*/
  
 }
</script>

<input type=button value=GetHtml onclick="getHTML()">
<div id="placeholder"></div>

默认情况下使用这种方法请求即可,但要再细微点可以多设置参数,这个将在以后使用Ajax.Request时深入说一下。

 

开始胡敲了,先停住吧,最近精神状态一直不好.明天讲一下参数,并说下怎么实现当Ajax请求发生时出现"Loading...",而成功后自动消失.

posted @ 2006-05-18 15:27 秋天的云 阅读(403) 评论(0) 编辑

2006年2月14日 #

    前两天在网络发现一个简单实现AJAX frameworks-- ComfortASP.NET,它有三种实现AJAX 的方法,你可以根据情况选择实现方法。
网站:http://www.comfortasp.de/   
ComfortASP.NET有几个优点:
        1.实现简单,不需要写JavaScript代码。
        2.有三种实现AJAX的方法。
        3.可以对传输数据进行压缩。
 4.有几好用的控件(还没有研究)
    最大缺点:
        使用要注册,不是开源的!!
       

    我只是刚看这个东西,还没有研究,有说错的地方,对不起了。
     Demo代码:http://files.cnblogs.com/gyf19/caspDemos.rar

posted @ 2006-02-14 23:26 秋天的云 阅读(138) 评论(0) 编辑

2005年11月24日 #

我是菜鸟,写点东西,怕自己忘了!!
好久没有写东西,今天看CSDN的时候,看到一个朋友在问统计某颜色所占总面积的比例的问题:
1。获取一个图像的Bitmap类型,有N种方法得到,下面说两种
 (1)从this.pictureBox1.Image得到
 (2)(Bitmap)Bitmap.FromFile(openFileDialog.FileName, false);

2。主程序
    

unsafe 
            

                Bitmap bitmap 
= (Bitmap)this.pictureBox1.Image.Clone(); 
                Color color 
= bitmap.GetPixel(e.X, e.Y ); 
                label2.BackColor 
= color; 
                Rectangle rect 
= new Rectangle( 00, bitmap.Width, bitmap.Height ); 
                BitmapData bitmapData 
= bitmap.LockBits( rect, ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb ); 
                
int sum = 0
                
int* colorData = (int*) bitmapData.Scan0.ToPointer(); 

                
forint i = 0; i < bitmap.Width * bitmap.Height; i ++ ) 
                


                    
if(colorData[ i ] == Color.FromArgb( color.R, color.G, color.B ).ToArgb()) 
                    

                        sum
++
                    }
 
                }
 
                bitmap.UnlockBits( bitmapData ); 


                bitmapData 
= null

                
//结果 
                label1.Text = sum.ToString(); 
                
                
            }


  

posted @ 2005-11-24 22:07 秋天的云 阅读(481) 评论(14) 编辑

2005年11月17日 #

摘要: 当label控件生成html后就变成span元素,等于操作span元素了假设已经定义了一个span元素id是" me ",则在Javascipt里面这样使span打印一条信息:document.getElementById("me").innerText = "请稍候..."; document.getElementById("me").innerHTML = "您的号码是:<br>1...阅读全文
posted @ 2005-11-17 14:47 秋天的云 阅读(2877) 评论(0) 编辑

2005年11月16日 #

摘要: 关于AD编程的一些资料 有人问我怎样在.NET下操作AD对象,找了些资料和Sample,留作备用。 .NET Framework Class Library: System.DirectoryServices Namespace http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemdirectoryservices.asp H...阅读全文
posted @ 2005-11-16 21:08 秋天的云 阅读(379) 评论(0) 编辑

2005年10月26日 #

摘要: 在.NET 使用MySQL Connector Net 1.0.6 插入数据到MySql 数据库乱码问题:问题:只要插入数据中有中文的部分,出现????乱码。 解决: 只要把连接字符串加CharSet=gb2312; 例:string connStr = "server=58.135.48.45;user id=root; password=password; database=mysql; Ch...阅读全文
posted @ 2005-10-26 18:23 秋天的云 阅读(979) 评论(3) 编辑

2005年10月12日 #

摘要: 前两天在CSDN里看到有人问怎么在vs2005下用EnterpriseLibrary,今天找到一些资料给大家。我是拿来主义,大家见笑了!http://www.elguille.info/colabora/NET2005/bcapuano_Enterprise_Library_Install_Services_without_Visual_Studio.htmhttp://www.elguille....阅读全文
posted @ 2005-10-12 00:23 秋天的云 阅读(1525) 评论(0) 编辑

2005年9月12日 #

摘要: 第一次写blog大家见笑了!希望能给大家帮助 我第一个使用Enterpris Library程序写好已经以后上传到服务器上后出现如下的异常产生:安全性异常 说明: 应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。异常详细信息: System.Security.SecurityException: 不允许所请求的注册表访问...阅读全文
posted @ 2005-09-12 09:56 秋天的云 阅读(1880) 评论(3) 编辑

仅列出标题