ASP.Net Ajax工具包客户端代码和javascript问题

时间:2011-04-21 18:57:20

标签: javascript asp.net ajax function toolkit

我正在尝试了解使用ASP.Net Ajax日历控件的示例客户端代码。以下是asp.net网站的示例代码。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml" >  
<head runat="server">  
    <title>Untitled Page</title>  
    <style type="text/css">  
    </style>  
    <link href="http://ajax.microsoft.com/ajax/beta/0911/extended/Calendar/Calendar.css" rel="stylesheet" type="text/css" />  
    <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.js" type="text/javascript"></script>      
    <script src="http://ajax.microsoft.com/ajax/beta/0911/Start.debug.js" type="text/javascript"></script>  
    <script src="http://ajax.microsoft.com/ajax/beta/0911/extended/ExtendedControls.debug.js" type="text/javascript"></script>  
    <script type="text/javascript">  
        Sys.debug = true;  
        Sys.require(Sys.components.calendar, function() {  
            $("#bdate").calendar({});  
        });  
    </script>  
</head>  
<body>  

    <div style="width:1px;height:500px"></div>  
    <input type="text" id="bdate" />  


</body>  
</html>  

根据一些文档,以下行加载javascript文件Sys.require())

$("#bdate")使用jQuery查找id为#34; bdate&#34;的对象。我不了解其余部分,特别是

  1. .calendar({}),,尤其是({}),
  2. function()
  3. 任何帮助或提示都很受欢迎!!!!

    Sys.require(Sys.components.calendar, function() {  
        $("#bdate").calendar({});  
    });
    

2 个答案:

答案 0 :(得分:0)

从它的外观来看:

该部分行确保日历脚本/根对象准备就绪

Sys.require(Sys.components.calendar

当它们准备就绪时,它会调用匿名函数,该函数会找到ID为 bdate 的项目(html中的文本框),并使用附加日历显示功能日历方法。 (当文本框控件获得焦点时,可能会弹出日历)。 日历方法由 Sys.components.calendar 对象注册,基本上是可以在jquery选择器调用返回的文本框对象上调用的扩展方法。 (例如$(“#xyz”),其中#xyz表示html中某处id为'xyz'的元素)

function() {  
    $("#bdate").calendar({});  
}

这是一个匿名函数,也可以作为参数传递。所以它基本上是 require 调用的第二个参数(有点像C / C +++中的函数指针,但是声明为内联)。当日历对象/脚本都已加载并初始化时,将调用此方法。

最后,{}部分意味着它将没有属性的空javascript对象传递给日历创建方法。该方法很可能采用具有可选属性的javascript对象形式的许多可选参数,这里没有使用这些参数。

希望有所帮助

答案 1 :(得分:0)

1.只是调用默认的“日历”创建函数,将其想象为构造函数。 {}是一种定义JSON字符串的方法,通常是添加配置选项的位置。 E.G。

calender({
        someOption: true,
        someOtherOption: false,
        height: 120px
    });

2.这是一种在Javascript或自治函数中将函数作为对象传递的方法。所有它的说法是'require'的第二个参数使用该函数。这通常称为回调函数,因为取决于函数传递给它的方法,可以在原始方法完成/回调时执行。

在这个上下文中,定义的函数是一个用于创建日历控件的jQuery调用,所以在基本术语中你可以想象它会这样说:

要求(组件),然后一旦我们拥有该组件,就调用函数'$(“#bdate”)。calendar({});'

作为进一步解释函数$(“#bdate”)。calendar({});将在ID为bddate的元素上创建日历控件。