Robin's Blog

记录 积累 学习 成长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
2楼 得分:0
asp.net ajax或者实现ICallBackEventHander
修改 删除 举报 引用 回复 
进入用户个人空间
加为好友
发送私信
在线聊天
  •  lxy_lxy
  • 等级:
  • 可用分等级:
  • 总技术专家分:
  • 总技术专家分排名:
发表于:2008-09-07 13:31:153楼 得分:0
很多···最长用的就是 xmlHttp 了····
修改 删除 举报 引用 回复 
进入用户个人空间
加为好友
发送私信
在线聊天
  •  lxy_lxy
  • 等级:
  • 可用分等级:
  • 总技术专家分:
  • 总技术专家分排名:
发表于:2008-09-07 13:32:334楼 得分:0
如 
var xmlHttp; 

            xmlHttp= new ActiveXObject("Microsoft.XMLHTTP"); 


        xmlHttp.open("POST","GetTalk.aspx?TimeNumber="+TimeNumber, true); 
  
        xmlHttp.onreadystatechange = function() 
        { 
            if(xmlHttp.readyState==4) 
            { 
                if(xmlHttp.status==200) 
                { 
                    
                                  
                        alert(xmlHttp.responseText); 
                  }                } 
        } 
        xmlHttp.send(null);
修改 删除 举报 引用 回复 
进入用户个人空间
加为好友
发送私信
在线聊天
  •  namhyuk
  • 等级:
  • 可用分等级:
  • 总技术专家分:
  • 总技术专家分排名:
发表于:2008-09-07 13:34:095楼 得分:0
直接用XHtmlRequest, client callback, javascript访问Web Service或WebMethod. 

以访问WebMethod为例: 
1、ScriptManager的EnablePageMethod必须为true. 

HTML code 
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"
        <Scripts> 
            <asp:ScriptReference Path="~/Scripts/MyScript.js" /> 
        </Scripts>  
</asp:ScriptManager> 


2、服务器方法必须是static方法 

C# code 
[System.Web.Services.WebMethod] 
public static string[] GetStringArray(string s, int cnt) 

        string[] stringArray = new string[cnt]; 
        Random rnd = new Random(); 
        for (int i = 0; i < cnt; i++) 
        { 
            stringArray[i] = string.Format("Random{0}: {1}-{2}",i, s, rnd.Next(cnt)); 
        } 
        //throw new Exception("亲爱的错误"); 
        System.Threading.Thread.Sleep(3000); 
        return stringArray; 



3、可以把script代码放到.js文件里,如Scripts目录下的MyScript.js内。 

JScript code 
function CallWebMethod(prefix,count) 

        $get('result').innerText = "请稍侯..."; 
        PageMethods.GetStringArray(prefix, count, OnSuccess, OnFailed); 
        return false; 

function OnSuccess(stringArray) 

        var s = ""; 
        for(var i = 0; i < stringArray.length; i++) 
        { 
            s += stringArray[i] + "\n"; 
        } 
    
        $get('result').innerText = s; 

function OnFailed(error, userContext, methodName) 

        if(error != null) 
        { 
            alert("发生了亲爱的错误:" + error.get_message()); 
        } 



//.aspx 

HTML code 
<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"> 
        <Scripts> 
            <asp:ScriptReference Path="~/Scripts/MyScript.js" /> 
        </Scripts>  
    </asp:ScriptManager> 
    <div> 
        <asp:Label ID="LabelPrefix" AssociatedControlID="TextBoxPrefix" runat="server" Text="string prefix: "> </asp:Label> 
        <asp:TextBox ID="TextBoxPrefix" runat="server"> </asp:TextBox> 
        <asp:Label ID="LabelCnt" AssociatedControlID="TextBoxCnt" runat="server" Text="count: "> </asp:Label> 
        <asp:TextBox ID="TextBoxCnt" runat="server"> </asp:TextBox> 
        <cc1:FilteredTextBoxExtender 
            ID="FilteredTextBoxExtenderCnt" runat="server" 
            TargetControlID="TextBoxCnt" 
            ValidChars="1234567890" 
            > 
        </cc1:FilteredTextBoxExtender> 
        <input id="Button1" type="button" value="button" onclick="CallWebMethod($get(' <%= TextBoxPrefix.ClientID %>').value,$get(' <%= TextBoxCnt.ClientID %>').value)" /> 
    </div> 
    <div id="result" style="border:solid 1px Maroon; margin: 10px; padding;5px;"> 
    </div> 
</form> 


修改 删除 举报 引用 回复 
进入用户个人空间
加为好友
发送私信
在线聊天
  •  toxxj
  • 等级:
  • 可用分等级:
  • 总技术专家分:
  • 总技术专家分排名:
发表于:2008-09-07 13:37:356楼 得分:0
JF
修改 删除 举报 引用 回复 
进入用户个人空间
加为好友
发送私信
在线聊天
  •  xocom
  • 等级:
  • 可用分等级:
  • 总技术专家分:
  • 总技术专家分排名:
发表于:2008-09-07 13:38:177楼 得分:0
C# code
                
javascript函数中执行C#代码中的函数: 方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2、在前台写一个js函数,内容为document.getElementById("btn1").click(); 3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数; 方法二:1、函数声明为public 后台代码(把public改成protected也可以) public string ss() { return("a"); } 2、在html里用<%=fucntion()%>可以调用 前台脚本 <script language=javascript> var a = "<%=ss()%>"; alert(a); </script> 方法三:1<script language="javascript"> <!- - function __doPostBack(eventTarget, eventArgument) { var theForm = document.Form1; //指runat=server的form theForm.__EVENTTARGET.value = eventTarget; theFrom.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } --> </script> <input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')"> 方法四:<script language="javascript"> function SubmitKeyClick() { if (event.keyCode == 13) { event.cancelBubble = true; event.returnValue = false; document.all.FunName.value="你要调用的函数名"; document.form[0].submit(); } } </script> <INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text"> <input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉 在.CS里有: public Page_OnLoad() { if (!Page.IsPost()) { string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:""; //根据传回来的值决定调用哪个函数 switch(strFunName) { case "enter()": enter() ; //调用该函数 break; case "其他": //调用其他函数 break; default: //调用默认函数 break; } } } public void enter() { //……比如计算某值 }
posted on 2009-03-05 13:48  Robin99  阅读(641)  评论(0编辑  收藏  举报