预览模式: 普通 | 列表

在.net中使用jquery的ajax

因为最近的项目需要使用在Asp.net下使用Ajax技术.进行了一些实际研究,原来想用Ext,但考虑到同组的哥几个一起开发,Ext的类库过大,并且它的优势在于UI方面;而对于微软官方的解决方案ASP.NET AJAX的类库还包括后台的类库觉得稍重量级了些.最后选择了jqury,轻量而优雅.

对于jqury这个javascript类库,有官方的网站支持,感兴趣的想彻底研究的不妨移步过去:点这儿.

    这里只提供自已使用jqury在Asp.net中的应用方案。

     首先,要解决的问题是使用jQuery.getJSON(url,[data],[callback])方法中url,即要获取前台处理数据的地址。因为以前有过开发GIS的经验,所以知道一般GIS的解决方案是通过调用“一般处理程序”即以.ashx结尾的文件,它实际上是通过继承IHttpHandler这个接口来实现自定义返回给客户端自定义内容的。

      IHttpHandler这个接口比较简单只有一个属性和一个方法:

查看更多...

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 568

.NET2.0 无刷新回调

第一步:实现 ICallbackEventHandler 接口

  ICallbackEventHandler接口位于System.Web.UI命名空间下。在beta2时,ICallbackEventHandler只包含一个RaiseCallbackEvent方法,即处理回调事件,又返回处理结果。在正式版中,它变成了包含GetCallbackResult和RaiseCallbackEvent两个成员方法,第一个用来返回回调事件的结果,第二个用来出来回调事件。这个变化主要是为了编写Web控件而做的改动,具体可以看一下GridView等控件中的实现代码。

  建立一个 Web 网站,我们来修改 default.aspx.cs 文件:

  1 public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
  1 private string str;
  2 public void RaiseCallbackEvent(string eventArgument)
  3 {
  4 //可以根据传递的参数不同,调用不同的处理逻辑
  5 str = "从服务器端返回的内容:" + eventArgument;
  6 }
  7
  8 public string GetCallbackResult()
  9 {
  10 return str;
  11 }
  12

  第二步:注册回调方法

  我们在 default.aspx 页面中添加一个 TextBox ,一个 Label 和一个 Html 控件 Button ,并给 Button 添加 onclick 事件:

1 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  
2 <input id="Button1" type="button" value="提交到Label1" onclick="CallServer(TextBox1, Label1)"/><br/>  
3 <asp:Label ID="Label1" runat="server" Text="Label1:"></asp:Label>  
4  

1     <script type="text/javascript">  
2         //由button调用  
3         function CallServer(inputcontrol, context)  
4         {  
5             context.innerHTML = "Loading";  
6             arg = inputcontrol.value;  
7             //注册回调方法  
8             <%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>;  
9         }  
10         //在回调方法中注册的接收返回结果的函数  
11         function ReceiveServerData(result, context)  
12         {  
13             context.innerHTML = result;  
14         }  
15     </script>  
16


  好了,一个无刷新的页面就开发完了,它可以将你在 TextBox 中输入的文字,通过服务器代码写回到页面的 Label 中。是不是很简单?你可以运行一下你的程序看看效果啦!

  下面我们来分析一下这些代码。

  首先,我们看



<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>;


  ClientScript是System.Web.UI.Page对象的一个属性,它是System.Web.UI.ClientScriptManager对象。用于管理客户端脚本,GetCallbackEventReference方法用于注册一个服务器端事件的客户端回调。它的第四个参数“Context”非常重要,但在MSDN中并没有相关的例子和详细的说明。在我上面给的代码中可以看到,调用CallServer方法时,传递的Context参数就是Label1,而ReceiveServerData的第二个参数“Context”就是被传递过来的Label1。在我的例子中,Context被我用于设定一个用来显示服务端返回结果的控件。其实,你可以将任意的对象赋值给Context,它都会被传递给本地端处理回调返回结果的函数,这样,你就可以根据调用前指定的“上下文”灵活的操作返回结果了!在我给出的完整例子中,你可以看到一个使用Context做的无刷新显示GridView的例子。


  在这里我要说个题外话,Context这么重要的参数在MSDN中不但没有详细的说明,而且VS2005中文正式版MSDN中关于回调的例子竟然还是beta2时的实现!这个版本的MSDN可以说是我用过的版本中品质最差的。不过现在的MSND可以用“相当”庞大来形容,出错也是在所难免的,希望下个版本的MSND会好一些。

  OK,在ASP.NET 2.0中开发具有Ajax特性的东东不难吧!其实就是两步:

  1、 在Server端实现ICallbackEventHandler接口,在接口包含的方法中根据传递的参数分别调用不同的处理方法,然后返回结果;

  2、 在Client端注册回调函数(当然你也可以在Server端注册),然后实现处理回调结果的函数。其中,如果对Context能干灵活运行,你就可以做出非常好的效果了

第一步,在VS2005中建立一个新的WEB窗件。
   第二步,在ASPX中,放上一段HTML代码(如下):


1<body>
2    <form id="form1" runat="server">
3    <div>
4        <button onclick="CallServer()">CallServer</button>
5    </div>
6    </form>
7</body>
   第三步,然后在<HEAD></HEAD>中放入一段JavaScript脚本:

1 <script type="text/javascript">
2     function CallServer()
3     {
4         var product = "测试";
5         <%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%>;
6     }
7    
8     function ReceiveServerData(rValue)
9     {
10         alert(rValue);
11     }
12 </script>
   第四步,在此ASPX的后台CS代码中,继承ICallbackEventHandler接口,并实现接口中的两个方法:
ICallbackEventHandler.GetCallbackResult()
    和
ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
   第五步,增加一个变量CallBackValue,并修改接口的两个方法为:

1 private string CallBackValue = string.Empty;
2   
3 string ICallbackEventHandler.GetCallbackResult()
4 {
5 return CallBackValue + ",ok";
6 }
7
8 void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
9 {
10 this.CallBackValue = eventArgument;
11 }
12
    第六步,运行,界面上会出现一个按钮,点击后,会将“测试”这个字符串传至后台,后台C#代码将字符串加上“,OK”后返回给客户端的JavaScript代码,并显示。
    以上六步,就可以实现无刷新回调了。现在,我们来分析一下几段代码。
    先看第三步中的JavaScript代码,其中的CallServer()方法中进行了回调,回调的语句为:
<%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%>;
   
    里面四个参数中第二个参数指定将product这个JavaScript中的字符串变量传回后台,第三个参数指定了从后台返回时接收返回信息的JavaScript方法ReceiveServerData(string Value)。
    第五步中后台的两个方法,一个ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)用来接收前台JavaScript中传来的字符串变量,并赋值给内部变量this.CallBackValue,另一个方法ICallbackEventHandler.GetCallbackResult()将变更后的内部变量this.CallBackValue返回给前台JavaScript方法ReceiveServerData(string Value)。
    调用的顺序是: (前台)CallServer() --> (后台)ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) --> (后台)ICallbackEventHandler.GetCallbackResult() --> (前台)ReceiveServerData(string Value)。
    整个调用过程非常简单,而其中非常关键的一步是第三步的
分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 425

赢在中国 - 史玉柱经典语录



1.要重视建立销售手册
2.凡是先做试点,风险才低。
3.找到自己的细分市场。
4.不要总想着同竞争对手对立,而是要想办法让自己弥补竞争对手的不足。
5. 如果没有价格上的优势与技术上的绝对优势,千万不要进入红海市场,否则你会必输无疑!
6.抓住关键环节,重点抓好市场调研。
7.与其改变消费者固有的想法,不如在消费者已熟悉的想法上去引导消费者。
8.要改变消费者固有的想法,比登太阳还难;但不是不可能的。
9.对普通员工,首先考虑其利益,然后才是社会价值。
10.我在我的公司只管一件事——市场调研。
11.公司在小的时候,尽量要股权集中。
12.要花大的精力建立一个连最基层的员工可以看明白及易于操作的手册,尤其是《管理手册》和《营销手册》;
13.要重视建设团队,核心团队一般不超过7人。
14.要脚踏实地的从小做起,团队重于个人作用。
15.要注意广告的法律限制。
16.90%的困难你现在想都没有想到,你都不知道那是困难。
17.首先一定要建立、运营第一家店,并根据其写成一个“傻瓜手册”,做成功一个店之后离你大的成功就不远了,首先就是脚踏实地、集中精力做成功一个。
18.试销市场慢跑,快不得;全国市场快跑,慢不得!
   做全国性市场,一定要先做一个试销市场,要一点点来,快不得;
   做成了,真到做全国市场时,要快半步,慢不得!
19.不要只看塔尖,二三线市场比一线的更大。
20.失败是很重要的财富,我们要好好的利用它。
   作为我们曾经失败过,至少有过失败经历的人,应该经常从里面学点东西。人在成功的时候是学不到东西的,人在顺境的时候,在成功的时候,沉不下心来,总结的东西自然是很虚的东西。只有失败的时候,总结的教训才是深刻的,才是真的。
21.关系不是核心竞争力;关系是最靠不住的东西!
22.广告靠吸引比靠强迫更难。
23.不要为改变而改变,主要看改变的商业模式能提升什么样的价值。
24.创业过程中很重要的在于制度建设。
25.要让公司全部人员知道——管理无情,人有情,公司制度是无价的;
26.在公司只有功劳,没有苦劳。
27.当战略定好后,关键在于执行力,细节决定成败。
28.在下班后,可以将员工当成伙伴,但上班时员工就是员工。
29. 团队核心成员有人要提出辞职时,不要挽留,既然提出了,他迟早是要走的。
30.所谓人才,就是你交给他一件事情,他做成了;你再交给他一件事情,他又做成了。
31.最痛苦的时候,压力最大的时候,脑子里面只有一件事儿的时候,我把全国分公司经理招到荒山脚下北大门那个地方.招待所里面,然后在那个地方闭门开批判会。大家批判我,批判了三天三夜,我觉得那个就很有用。
32.如果脑白金无效,就请告诉身边一百个人
33 创造事件营销让媒体自觉报道
    我先找到差异化,我的产品和其它的产品差异在哪儿?
    营销里面有个叫第一法则。你到哈佛去学的时候,他会说一个案例。对美国人来说,谁第一个飞越大西洋的人?一般都能回答得出来,但是问谁是第二个飞越的,就没人能回答出来了。谁是第三个飞越的?记得了。为什么?第三个是第一个女性飞越,她拥有了个第一。
    你一定要在你的品牌建设里面,把你的第一给挖出来,猛宣传那一点。
    宣传用什么手段呢?我建议别上来上电视。第一、报纸,第二个、创造事件营销,让媒体作为新闻自觉去报道你,这样很省钱。

分类:网络痕迹 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 389

没有风投的创业法则

有人曾经对我说,一个创业者得到风险投资的几率如同在一个晴天下站在游泳池里被闪电击中一样。但是在我看来,这种比喻还是过于乐观了。

 

在现在这个热钱涌动的商业社会,好的企业从来不缺投资,当然前提必须是这是一家优秀的企业,至少也得是看起来有前途的企业。在这些企业的门口,是排着长队的投资者,资本的富足已经宠坏了这些企业,只要他们开口,资金是大大的有。但是对于大多数刚刚起步的新兴企业来说,这一切的美好都与之无关,投资者在他们面前完全是另外一副嘴脸,盛气凌人自不必说,有钱就是大爷的他们可能以种种借口拒绝投资你的企业:你们不是一个“令人信服”的团队,没有“高人一等”的技术,不在一个“前景广阔”的市场里;或者你的公司根本就不具备“风险投资的潜质”——也就是说没有可能上市或者被巨资收购;再或者你的组织受到太多政府或环境因素的干扰,如此等等,让人既郁闷又泄气,自己辛辛苦苦经营的企业似乎还没开始就已经失败了。

 

那么如果拿不到任何风险投资,你是否应该放弃呢?答案是NO!坚定而决绝的回答,一如投资者拒绝你时那样。

 

我可以举出例子来说明,对于许多公司来说,太多的钱比太少的钱更糟糕——这并不是说我不想有一天能运行NFL超级碗那样的商业活动。但是直到那天成为现实之前,要想成功还必须脚踏实地从零开始。而下面我就将告诉你一些白手起家的艺术:

 

注重现金流而不是盈利性

查看更多...

分类:网络痕迹 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 460

创业公司的“四不五缺”!

 对创业公司的发展有时也在思考和总结,成绩虽然有,但发展到今天没有更快速的成长,你是否也想过也许还有很多做的不足的地方需要改进。是否也犯过这样那样的错误?是否想过“四不五缺”? 

不务实:目标过大,动不动就是搞个概念要去拿风投,要上市,预想自己的开盘目标就能挣个3000万。作为一个刚起步的互联网公司,不知道在说一些话和做一些决策的时候有没有充分的市场依据,有没有必要的市场调研和数据分析。不要总说我们的产品市场前景足够大,有几亿几亿的市场,我们只要做到10%,就可以达到多少多少了。关键的问题是自己能做到多大?如何才能做到那么大?什么时间能做那么大?在这个时间段内市场是否已经发生了变化?太虚幻的目标只能会让我们好高骛远,追大求全。从而忽视了身边的各种小的商机。

 不精简:一开始团队就按着黄金团队的模式在打造,一个萝卜一个坑,各就其位。关键是前期是不是真的有必要有那个坑,那个坑是不是有必要有个萝卜。如果不是每个人都能发挥百分之百的效能那就是浪费资源。创业团队其实应该轻和精。中国人做事其实有时候不是人越多越好。正所谓:一个和尚挑水吃,两个和尚抬水吃,三个和尚没水吃。

 不专业:一种情况是做的业务不是自己最擅长的业务和领域。二是创业期间,在团队用人上多以感情做基础委以重任,而非“因岗设人,能力对口”“专业的人干专业的事”。存在着很大的不专业性,这一切往往为以后的发展埋下了隐患。

 不聚焦:有些创业公司业务规划不清晰,总是走走看,走不通了换方向。多个产品线并行,外带飞单项目开发。可以想象如此分散精力,怎能挖透那口井。现在竞争激烈的市场需要差异化细分和具有核心竞争力的产品,需要选准一个点,做专做精才有出头,否则,根本轮不到你出头。如果为了现金流做一些副业供养生计,但做副业是为了养主业,做副业的同时主业也应该有进展和进步才可以。否则,整个精力都在做副业,主业会荒废了,当优势不再是优势我们就已经落伍了。因为社会在发展不进步就是后退。如果实在因为资金压力做不下去,我们就需要考虑学会放弃一部分,继续细分只做其中一个点或一个环节。

 

 缺成本控制很多企业刚开始也许是拿到了一部分资金,然后就开始膨胀,最后揭不开锅了。如果前期成本控制的好一些,后期不至于很被动,甚至因为资金链断裂而完蛋。而现实中这样的例子还在不断的重演,不断的发生,然而总是有人还是在不断的犯错。

缺信任:缺信任往往体现在对公司的发展思路上,而原因往往是在利益分配上。有时候会在思路上发生很多争执,而最关键的是争执之后留在每个人心里的那个结。从而形成各自的小算盘。创业团队如果不能做到"万众一心",拥有共同的价值观,成功起来是很难的。创业公司的文化中不应该带有太多心结,办公室政治不应该属于创业团队。

 缺信心创业的艰难是有目共睹的,特别是创业到了后期遇到困难和资金紧张,大家就开始缺乏信心,因为各种征兆表明现实不容乐观,是否要做?有多大价值?作为领导人如果没有信心走出困境,不能给大家以前进的动力和信心,失败就已经开始了。

 缺愿景其实,愿景并不是就是上市。金钱只是一种表现形式。因为上了市的公司仍然需要有他的愿景。对共 产 党而言,也许共产主义就是一种愿景。我们的愿景是什么呢?有什么东西能让我们齐心协力,万众一心的往前走呢?很多时候,我们缺少对大家未来目标和期望值的一种构思和梦想。

 缺坚持很多公司的失败往往并不是因为业务不好,而是没有坚持下来。在黎明前的头一天晚上倒下了。创业是一件很艰苦的事情,没有坚持,很难成功!

 

在这个寒冷的冬天,你是否遇到了这些问题?

 

   (作者:李天平  转载请注明)

分类:网络痕迹 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 347

SERV-U FTP安全设置

SERV_U的安全与否直接影响到服务器的安全,目前黑客攻击服务器,大多会通过SERV_U来实现提权,以至一些网管都认为SERV_U是个很不安全的FTP软件。其实不然。现把本人对SERV_U的应用中得到的一点小经验写出来与大家一起相互学习。

1、更改FTP服务启动帐户。

    我们在系统服务中可以看到”Serv-U FTP 服务器”默认是用”本地系统帐户”来启动服务的。这意味着系统采用了权限相当于ADMINISTRATORS权限的SYSTEM来启动SERV_U服务。也就是说,任何一个FTP用户登录后,对服务器系统而言它所拥有的权限就是system权限。尽管SERV-U对该用户的空间进行过权限设置,但那尽尽是SERV-U中的限制,只在上传下载文件时发挥作用,而FTP用户在系统上的权限就是SYSTEM权限,SYSTEM对系统任何空间都有读、写、甚至执行权限,这样很容易被黑客利用来得到提权。

    建一个系统用户,默认它属于USERS组,请从该组中删除该用户,然后把该用户加到guests组。这样该用户就是系统中最小权限的用户。

    在服务中把”Serv-U FTP 服务器”的登录用户改为该用户。然后重启SERV-U服务。另外,SERV-U的安装目录要允许该启动帐户读、写、执行的权限(无需完全控制权限)。否则服务会启动不了。还有,IIS的匿名用户对SERV-U目录绝对不允许有执行权限,以免ASP木马通过WEB方式提权。

2、修改默认端口43958,该端口供SEV-U管理员连接SERV-U服务使用。所以该端口只对127.0.0.1 服务,并不对外服务。改这个端口的意义是因为目前有个U.EXE提权软件默认”假设SERV-U采用43958的端口以及空密码”这样的配置开发的。所以我们改了这个端口以后,该软件就无法运行了。方法是修改SERV-U安装目录中的ServUDaemon.ini文件,在[Global]中添加一行 localsetupportno=12345,这样就把默认的43958改为12345端口了。

3、给SERV-U配置管理登录密码。原理同2.

4、SERV-U的安装时,尽可能把安装目录的名字命名的特殊一点,不让黑客猜到我们的安装目录。

5、FTP空间的权限配置,只允许ADMINISTRATORS有完全控制,允许FTP服务启动帐户有读、写的权限,一定不能有执行的权限。其它用户的权限都删除。至于每个FTP用户对FTP空间的读写权限则在SERV-U中进行配置。

    这是我多年使用SERV-U的心得,目前没有发现被黑被利用的现象。不足之处请朋友补充。
分类:服务器 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 567

.net之AJAX实践-更新等待实践

在登录126邮箱时,如果时间过长,就会有一个登录动态图标显示。当然过快你可能都看不见,一闪而过。查看资料发现这个功能是通过AJAX技术来实现的。 

在VS2005下使用AJAX,访问http://ajax.asp.net/获取详细信息。微软的Atlas官方网站。

1 下载ASPAJAX扩展包:

http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f4%2f6%2f5462bcbd-e738-45fa-84ca-fa02b0c4e1c2%2fASPAJAXExtSetup.msi

查看更多...

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 456

首先下载FCKeditor。

FCKeditor的下载地址
http://www.fckeditor.net/download/default.html

我使用的是当前最新版本FCKeditor 2.3

下载 ZIP File (source code included):  FCKeditor_2.3.zip

FCKeditor.Net_2.2.zip

查看更多...

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 499