光盘AJAX
时间:2011-01-29 来源:cw_volcano
动态时间:
function Mytimer()
{
var now=new Date();
var msg=now.getHours()+":"+now.getMinutes()+":"+now.getSeconds();
var label=window.document.getElementById("Label1");
label.innerHTML=msg;
//window.setTimeout(Mytimer,1000); 效果跟下面的setInterval()一样,setInterval会不停地向服务器发请求不管服务器是否处理得完,setTimeout可以设定间隔时间等服务器处理完再发送下一个请求。
}
var mytimerid = window.setInterval(Mytimer,1000);
function StopMytimer()
{
window.clearInterval(mytimerid);
}
//window.setTimeout(Mytimer,1000);
window.opener 返回打开当前窗口的那个窗口
window.status 设置和返回窗口状态栏中文本
一般处理程序中处理xml传过来的值:
System.Xml.XmlDocument xml=new System.Xml.XmlDocument();
xml.Load(context.Request.InputStream);
System.Xml.XmlElement s1=xml.SelectSingleNode("/paras/para[1]") as System.Xml.XmlElement;
System.Xml.XmlElement s2=xml.SelectSingleNode("/paras/para[2]") as System.Xml.XmlElement;
int n1=Convert.ToInt32(s1.InnerText);
int n2=Convert.ToInt32(s2.InnerText);
string result=String.Format("<result>{0}</result>",n1+n2);
context.Response.ContentType="text/xml";
context.Response.write(result);
给web控件加事件函数:
this.TextBox1.Attributes["onblur"]="CheckUserName";
AJAX.net 下载地址:www.schwarz-interactive.de
注册程序集 NET1.1使用AjaxPro.dll NET2.0使用AjaxPro2.dll
在web.config中登记:将下载的压缩包中的web.config中的
<location path="ajaxpro">
<system.web>
<httpHandlers>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
</location>
增加到</system.web>元素的后面
(APP_Code/UserManager.cs)处理方法上 需要加上[AjaxPro.AjaxMethod]标签
如果处理函数需要使用Session,使用如下的标签[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
Request不可以直接使用,应使用如下的方法HttpContext.Current.Request
Default.aspx.cs文件中注册需要生成代理的类型:
AjaxPro.Utility.RegisterTypeForAjax(typeof(UserManager));
this.TextBox1.Atributes["onblur"]="AjaxCheck(this);";
Default.aspx页面:
<script>
function AjaxCheck(ctl)
{
var name=ctl.value;
var result=UserManager.IsUserExist(name);
var label=document.getElementById("Label2");
if(result.error==null)
{
if(result.value)
label.innerHTML="用户已经存在";
else
label.innerHTML="用户名有效";
}
}
</script>
异步调用:
<script>
function callback(result)//不论服务器端返回的参数是什么,这里的参数都是result
{
if(result.error==null)
{
var ctl=document.getElementById("Msg");
ctl.innerHTML=result.value;
}
window.setTimeout(displayTime,1000);
}
function displayTime()
{
//负责发出请求
TimeServer.GetTime(callback);//参数名为上面的函数名
//请求发出后,继续执行,不再等待结果
}
window.setTimeout(displayTime,1000);
</script>
HTML的button点击不会产生提交,单web控件中的button点击会提交。
复制machine.config文件中的membership节点到自己的Web.config文件中,放在<system.web>节点下。修改其中的name、connectionStringName ...等属性。
ASP.net网站管理工具->提供程序配置->为每项功能选择不同的提供程序(高级)->选择自己命名的名称
this.Label2.Text = this.User.Identity.Name;如果为Windows验证则会显示如GHOST-CFBD9CAFE\Administrator;
如果为Form验证则会显示用户名称,但需要在web.config中配置用户授权信息。
如果应用AJAX.NET的页面要登录后才能看到,则web.config页面<location path="ajaxpro">节点下注释掉的部分应改为<authorization><allow users="*"></authorization>
function sendMsg()
{
var ctlSender=document.getElementById("LblName");
//通过增加一个参数,使用异步调用
ChatManager.NewChat(ctlSender.value,null);
}
清除ListBox中原来的内容:
while(ulist.childNodes.length>0)
ulist.removeChild(ulist.childNodes[0]);
增加内容:
for(var i=0;i<result.value.length;i++)
{
option=document.createElement("option");
option.appendChild(document.createTextNode(result.value[i]));
option.setAttribute("value",result.value[i]);
ulist.appendChild(option);
}
onchange="selectUser(this)"
AspAjax(只能用于.NET2.0):
安装 AspAJAXExtSetup.msi
新建网站-->选择ASP.NET AJAX-Enabled Web Site
当母板页用了ScriptManager时,其他页就用scriptManagerProxy,
UpdateProgress控件用于显示Loading的信息.
把AjaxControlToolkit解压生成的项目重新生成下
System.Threading.Thread.Sleep(10000);//用于延长服务器端的回发时间