none
asp.net ajax 的问题 RRS feed

  • 问题

  •  

    我用到asp.net ajax 控件  当我要调用webserver 时,

    官方的例子说要引用控件ScriptManager ,并且把webserver 与js的地址加入其中,如:

    <asp:ScriptManager ID="ScriptManagerP" runat="server">
    
        <scripts>
    
            <asp:scriptreference Path="~/Scripts/HoverButton.js" />
    
        </scripts>
    
    
    
       <services>
    
           <asp:servicereference Path="~/webservice.asmx" />
    
       </services>
    
    </asp:ScriptManager>
    
    
    
    
    
    

    官方的一个例子的JS如下:

    Type.registerNamespace("JSSK");
    
    
    
    JSSK.ProgressMessage=function(id)
    
    {
    
        this._elementId=id;
    
        var element=$get(this._elementId);
    
        element.className="waitmessage";
    
        element.style.position="absolute";
    
        element.style.left=0;
    
        element.style.top=0;
    
    }
    
    
    
    JSSK.ProgressMessage.prototype=
    
    {
    
        ShowMessage:function(message)
    
        {
    
            var element=$get(this._elementId);
    
            if(element.innerText)
    
            {
    
                element.innerText=message;
    
            }
    
            else
    
            {
    
                element.textContent=message;
    
            }    
    
            element.style.visibility="visible";
    
        },
    
        HideMessage:function()
    
        {
    
            var element=$get(this._elementId);
    
            element.style.visibility="hidden";
    
        }
    
    }
    
    
    
    JSSK.ProgressMessage.registerClass("JSSK.ProgressMessage");
    
    
    
    
    附加的说明是这样的:要调用 的JS要按照asp.net ajax 的格式 ,例如上面的JS的格式;
    
    
    假如我想用jquery  ,可是jquery的格式不是这样啊;
    
    
    而且我看到例子的JS里的"prototype",好像用到的是:prototype的框架,那么为什么 叫asp.net ajax框架呢?
    
    
    要是能用jquery那么格式怎么写啊?
    
    

     


    大其心,可容天下之物; 虚其心,可受天下之善;
    2010年3月30日 4:14

答案

  • 你好,

    所谓ASP.NET AJAX框架是微软自己封装定义的一个框架。名字仅仅是一个名字,但基本原理都差不多。

    如果用jquery,那你可以参考下面的例子。

    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    
        <script src="../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
        <script type="text/javascript" language="javascript">
            $("#btnCallService").click(function() {
            $.ajax({
                type: "post",
                url: "/WebService1.asmx/VerifyFilesExist",
                dataType: "json",
                data: "{ 'fileName': '" + file + "'}",
                contentType: "application/json; charset=utf-8",
                //  async: true,
                success: function(result) { validate(result); },
                error: function(e) { display(e); }
            });
    
        });
        function validate(result) {
        }
        function display(e) {
        }
        
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <input type="button" value="Call Webservice" id="btnCallService" />
        </div>
        </form>
    </body>
    </html>
    

    Microsoft Online Community Support
    2010年4月1日 2:44

全部回复

  • 你好,

    所谓ASP.NET AJAX框架是微软自己封装定义的一个框架。名字仅仅是一个名字,但基本原理都差不多。

    如果用jquery,那你可以参考下面的例子。

    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    
        <script src="../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
        <script type="text/javascript" language="javascript">
            $("#btnCallService").click(function() {
            $.ajax({
                type: "post",
                url: "/WebService1.asmx/VerifyFilesExist",
                dataType: "json",
                data: "{ 'fileName': '" + file + "'}",
                contentType: "application/json; charset=utf-8",
                //  async: true,
                success: function(result) { validate(result); },
                error: function(e) { display(e); }
            });
    
        });
        function validate(result) {
        }
        function display(e) {
        }
        
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <input type="button" value="Call Webservice" id="btnCallService" />
        </div>
        </form>
    </body>
    </html>
    

    Microsoft Online Community Support
    2010年4月1日 2:44
  •  

    你说的那种方法是可行,

    如果我用了asp.net ajax中的控件:

    <ajaxToolkit:AutoCompleteExtender 
        runat="server" 
        ID="autoComplete1" 
        TargetControlID="myTextBox"
        ServiceMethod="GetCompletionList"
        ServicePath="AutoComplete.asmx"
        MinimumPrefixLength="2" 
        CompletionInterval="1000"
        EnableCaching="true"
        CompletionSetCount="20" 
        CompletionListCssClass="autocomplete_completionListElement" 
        CompletionListItemCssClass="autocomplete_listItem" 
        CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
        DelimiterCharacters=";, :"
        ShowOnlyCurrentWordInCompletionListItem="true">
            <Animations>
                <OnShow> ... </OnShow>
                <OnHide> ... </OnHide>
            </Animations>
    </ajaxToolkit:AutoCompleteExtender>
    
    有一个ServicePath属性,我在页面要写JS来调用webserver这一方法,而这个js一定要在
    <asp:ScriptManager ID="ScriptManagerP" runat="server"> <scripts>
    
            <asp:scriptreference Path="~/Scripts/HoverButton.js" />
    
        </scripts>
    </ScriptManager>
    
    
    下引用 ,在这种情况下我能用jquery吗
    大其心,可容天下之物; 虚其心,可受天下之善;
    2010年4月1日 3:04
  • jquery和微软的ajax可以一起使用的。
    Microsoft Online Community Support
    2010年4月5日 7:00