我是阿瑞,第一次写技术文章,没啥经验,语无伦次的地方还请大家多多体谅。
谈谈第一个话题:Asp.net MVC中利用UserControl任意组装你的View。
在Asp.net MVC中,您可以使用UserControls
来简化或模块化你的View逻辑。
当然可以像传统webform中那样使用。
<uc1:News ID=control1 runat=server listcount="3" />
但是这样使用,有两个缺点:
1.aspx页面顶部必须加个讨厌的声明。对于view来说,当然越简练越好。
2.还有一个缺点,就是传递的参数必须都是基础数据量类型,如果要传递
Object,我们该怎么办呢?

好在贴心的asp.net mvc提供了一系列的RenderUserControl方法。
还可以传递任何参数,还可以构造初始属性值,可以不用在aspx顶部进行声

明。非常干净清爽。
<%=Html.RenderUserControl(“~/UserControls/NewsList.ascx”)%>
<%=Html.RenderUserControl

(“~/UserControls/NewsList.ascx”,ViewData.News)%>

第三个参数以匿名方法的形式,可以方便构造出ascx的缺省属性。
<%=Html.RenderUserControl

(“~/UserControls/NewsList.ascx”,ViewData.News, new

{NewID=2})%>
好了,现在usercontrol已经可以很好的切割组装view层逻辑了,
但是无论如何组装,都是被动接受controller的调用的。
这有什么问题么?请思考如下场景,也是我之前请教邹建的问题:
--------------->
有一个场景,不知道如何用mvc实现
比如一个新闻系统,首页把各个新闻分类里的新闻标题的最新N条读出来,
在webform下,我把首页新闻列表封装成ascx,并且自定义了两个属性:

新闻类别和显示条数。这种情况下,首页aspx里只要有显示列表的地方,设

置一下这两个属性就OK了。也就是说,改首页aspx,就可以最终只取需要

的数据。
而在mvc下,控制取数据部分和页面彻底分离,上面的逻辑,既要让美工去

修改页面,也要程序员修改controler?
邹兄给我得回答是言简意赅 :用RenderComponent。
<-------------------------
这就引入了第二个话题:
web组件的使用,此web组件,不仅仅是像ascx那样包含view,更重要的是

他有自己的controller行为。而这个组件可以直接被其他的view所调用,
虽然像绕口令,不过结合上面的场景就好理解了。
这个被view层直接调用的controller必须是继承于ComponentController,
这和普通的controller是不一样的。类似这样:
    public class NewsComponentController : ComponentController
    {
         public void ContentList()
        {
            RenderView("NewsList", new
VstarApp.DAL.Service.ContentInfo_Service().GetAllData());
        }
    }
而这个 ComponentController所Render的视图文件路径也是有规定的,是

~/Components/yourcontrollerName/Views/ViewName.aspx
对于上面的NewsComponentController来说,就是
~/Components/NewsComponent/Views/NewsList.aspx
所以视图路径要建对哦。

剩下的工作,就是在其他view里调用这个组件controller
<%=Html.RenderComponent<CMSWeb.Controllers.NewsComponentController>(f => f.ContentList())%>

好了,一切ok.


posted @ 2008-07-17 12:47 沈阳阿瑞 阅读(1910) 评论(5) 编辑
flexigrid(强大)
http://webplicity.net/flexigrid/
(服务器端排序,resize列,自定义样式,分页,列头脱拽,列头显示设置
而且可以把普通的table转换成flexigrid.
整个表格外边框可以动态resize 。
)

http://www.trirand.com/blog/
(
比较强大,支持树状嵌套grid, 支持grid编辑,但是不支持列脱拽。
但是例子做的相当的详细。
)
posted @ 2008-07-15 14:57 沈阳阿瑞 阅读(173) 评论(0) 编辑
入门文章:

http://www.k99k.com/jQuery_getting_started.html

$(document).ready(function() {

$("a").click(function() {

alert("Hello world!");

});

});

这样在你点击页面的一个链接时都会触发这个"Hello world"的提示。

$("a") 是一个jQuery选择器(selector),在这里,它选择所有的a标签(即<a></a>)

$("#orderedlist")等价于document.getElementById("orderedlist")

$("#orderedlist").addClass("red");

为id为orderedlist的节点添加red样式类 。

$('.poem-stanza').addClass("red");

为class为poem-stanza的所有元素添加red样式类 。

$(document).ready(function() {

$("#orderedlist").find("li").each(function(i) {

$(this).html( $(this).html() + " BAM! " + i );

});

});




在页面加载完毕后,遍历id为orderedlist的节点的所有li子节点,




并对每个子节点的Html文本重新赋值。




.html()方法是获取对象的html代码,而.html('xxx')是设置'xxx'为对象的html代码




jQuery的一些特性和用法:




1.精准简单的选择对象(dom):



$('#element');// 相当于document.getElementById("element")

$('.element');//Class
$('p');//html标签
$("form > input");//子对象
$("div,span,p.myClass");//同时选择多种对象
$("tr:odd").css("background-color", "#bbbbff");//表格的隔行背景
$(":input");//表单对象
$("input[name='newsletter']");//特定的表单对象 2.对象函数的应用简单和不限制: element.function(par); $(”p.surprise”).addClass(”ohmy”).show(”slow”)... 3.对已选择对象的操作(包括样式): $("#element").addClass("selected");//给对象添加样式
$('#element').css({ "background-color":"yellow", "font-weight":"bolder" });//改变对象样式
$("p").text("Some new text.");//改变对象文本
$("img").attr({ src: "test.jpg", alt: "Test Image" });//改变对象文本
$("p").add("span");//给对象增加标签
$("p").find("span");//查找对象内部的对应元素
$("p").parent();//对象的父级元素
$("p").append("<b>Hello</b>");//给对象添加内容 4.支持aJax,支持文件格式:xml/html/script/json/jsonp $("#feeds").load("feeds.html");//相应区域导入静态页内容
$("#feeds").load("feeds.php", {limit: 25}, function() {alert("The last 25 entries in the feed have been loaded");});//导入动态内容 4.对事件的支持: $("p").hover(function () {
      $(this).addClass("hilite");//鼠标放上去时
    }, function () {
      $(this).removeClass("hilite");//移开鼠标
    });//鼠标放上去和移开的不同效果(自动循环所有p对象5.动画: $("p").show("slow");//隐藏对象(慢速渐变)
$("#go").click(function(){
$("#block").animate({
    width: "90%",
    height: "100%",
    fontSize: "10em"
}, 1000 );
});//鼠标点击后宽、高、字体的动态变化 6.扩展: $.fn.background = function(bg){
    return this.css('background', bg);
};
$(#element).background("red"); 如果要为每一个jQuery 对象添加一个函数,必须把该函数指派给 $.fn,同时这个函数必须要返回一个 this(jQuery 对象)







posted @ 2008-07-15 13:32 沈阳阿瑞 阅读(143) 评论(0) 编辑

注册表十大启动项 - [技术文摘]

Windows启动时通常会有很多程序自动启动。不要以为管好了“开始→程序→启动”菜单就万事大吉,实际上,在Windows XP/2K中,让Windows自动启动程序的办法很多,下文告诉你最重要的两个文件夹和八个注册键。

  一、当前用户专有的启动文件夹

  这是许多应用软件自动启动的常用位置,Windows自动启动放入该文件夹的所有快捷方式。用户启动文件夹一般在:\Documents and Settings\<用户名字>\「开始」菜单\程序\启动,其中“<用户名字>”是当前登录的用户帐户名称。

  二、对所有用户有效的启动文件夹

  这是寻找自动启动程序的第二个重要位置,不管用户用什么身份登录系统,放入该文件夹的快捷方式总是自动启动——这是它与用户专有的启动文件夹的区别所在。该文件夹一般在:\Documents and Settings\All Users\「开始」菜单\程序\启动。

  三、Load注册键

  介绍该注册键的资料不多,实际上它也能够自动启动程序。位置:HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load。

  四、Userinit注册键

  位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit。这里也能够使系统启动时自动初始化程序。通常该注册键下面有一个userinit.exe,如图一,但这个键允许指定用逗号分隔的多个程序,例如“userinit.exe,OSA.exe”(不含引号)。

 五、Explorer\Run注册键

  和load、Userinit不同,Explorer\Run键在HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE下都有,具体位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run。

  六、RunServicesOnce注册键

  RunServicesOnce注册键用来启动服务程序,启动时间在用户登录之前,而且先于其他通过注册键启动的程序。RunServicesOnce注册键的位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce。

  七、RunServices注册键

  RunServices注册键指定的程序紧接RunServicesOnce指定的程序之后运行,但两者都在用户登录之前。RunServices的位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices。

  八、RunOnce\Setup注册键

  RunOnce\Setup指定了用户登录之后运行的程序,它的位置是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup。

  九、RunOnce注册键

  安装程序通常用RunOnce键自动运行程序,它的位置在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce和HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce。HKEY_LOCAL_MACHINE下面的RunOnce键会在用户登录之后立即运行程序,运行时机在其他Run键指定的程序之前。HKEY_CURRENT_USER下面的RunOnce键在操作系统处理其他Run键以及“启动”文件夹的内容之后运行。如果是XP,你还需要检查一下HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx。

  十、Run注册键

  Run是自动运行程序最常用的注册键,位置在:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run。HKEY_CURRENT_USER下面的Run键紧接HKEY_LOCAL_MACHINE下面的Run键运行,但两者都在处理“启动”文件夹之前。

posted @ 2008-05-30 08:45 沈阳阿瑞 阅读(278) 评论(0) 编辑