Ajax与C#应用详细实例
实现刷新的方法主要是Ajax,本文档实现Ajax有两个方法(Jquery 和 W3C的JS方法);其次,使用JS也可以实现刷新数据不刷新页面(详见其他刷新页面方法JS实现);对于CallbackRefresh的方法也可以实现刷新。
上面的方法都是在页面不刷新情况下刷新数据,Iframe实现的刷新会刷新页面,此方法可以借鉴。
Ajax的实现:
Javascript方式:
<script type="text/javascript">
function loadXMLDoc(str) {
var xmlhttp;
var txt, x, i;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == && xmlhttp.status == ) {
xmlDoc = xmlhttp.responseXML;
//xmlDoc = xmlhttp.responseText;
txt = "";
x = xmlDoc.getElementsByTagName("TagName");
for (i = ; i < x.length; i++) {
if (x[i].childNodes[].nodeValue.contains(str)) {
txt = txt + x[i].childNodes[].nodeValue;
}
}
document.getElementById("txtHint").innerHTML = txt;
}
}
xmlhttp.open("GET", "url", true);
xmlhttp.send();
}
jquery:
<script type="text/javascript">
function loadXMLDoc(str) {
$("div").ajaxError(function(){
alert("An error occurred!");
});
$("#txt").ajaxStart(function(){
alert("AJAX 请求已成功完成");
});
$("div").ajaxSuccess(function(){
alert("AJAX 请求已成功完成");
});
$("#txt").ajaxComplete(function(){
alert("AJAX 请求已成功完成");
});
$("button").click(function(){
$("#txt").load("url");
});
}
URL的使用:
Txt:
如果是 e.txt
xmlDoc = xmlhttp.responseText;
XML:
如果是e.xml
xmlDoc = xmlhttp.responseXML;
x = xmlDoc.getElementsByTagName("TagName");
x[i].childNodes[].nodeValue
asp页面:
如果是Asp页面 可以用下面方法调用方法获取返回值:
URL:"WebForm1.aspx?city=" + "beijing"
页面方法一:
在被请求页面的WebForm1.aspx.cs 的Page_Load 里面写:
protected void Page_Load(object sender, EventArgs e)
{
//获取传递过来的参数
string city =Request.QueryString["city"];
Response.Clear();
//判断城市名
switch (city)
{
case "beijing":
//填充相关的区域
Response.Write("朝阳,海淀,东城,西城");
break;
case "shanghai":
Response.Write("浦东,静安,虹口,徐汇");
break;
case "jinan":
Response.Write("历下,历城,市中,天桥");
break;
}
}
页面方法二:
直接在被请求页面WebForm1.aspx 页面写代码
<%
response.write("<table>")
response.write("<tr><td><b>" & "asda" & "</b></td>")
response.write("<td>" & "asdad" & "</td></tr>")
response.write("</table>")
%>
其他的刷新页面方法:
方法1:
CallbackRefresh:
页面调用方法
<script type="text/javascript">
function FillData()
{
var city=document.getElementById("TextBox1").value;
<% =this.ClientScript.GetCallbackEventReference(this,"city","FillDll",null) %>;
}
function FillDll(strcity)
{
document.getElementById("DropDownList1").options.length=;
var indexofcity;
var city;
//切割传递来的字符串
while(strcity.length>)
{
//判断是否是最后一个字符串
indexofcity=strcity.indexOf(",");
if(indexofcity >)
{
city=strcity.substring(,indexofcity);
strcity=strcity.substring(indexofcity+);
//填充下拉框
document.getElementById("DropDownList1").add(new Option(city,city));
}
else
{
// 如果是最后一个字符串
document.getElementById("DropDownList1").add(new Option(strcity,strcity));
break;
}
};
}
</script>
后台代码:要继承ICallbackEventHandler (重要)
public partial class _Default : System.Web.UI.Page,ICallbackEventHandler
{
private string _data;
protected void Page_Load(object sender, EventArgs e)
{
}
#region ICallbackEventHandler 成员
public string GetCallbackResult()
{
//返回处理后的数据
return _data;
}
public void RaiseCallbackEvent(string eventArgument)
{
//判断传递过来的参数
switch (eventArgument)
{
case "北京":
_data = "朝阳,海淀,东城,西城";
break;
case "上海":
_data = "浦东,静安,徐汇,虹口";
break;
case "济南":
_data = "历城,历下,市中,天桥";
break;
}
}
#endregion
}
JS 实现局部刷新: 后台代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//创建字符串连接对象
StringBuilder myscript = new StringBuilder();
//使用字符串组织一个JavaScript脚本方法
myscript.Append("function seekCity() {\n");
myscript.Append("var city=document.getElementById('TextBox1').value; \n");
myscript.Append("switch(city) {\n");
myscript.Append("case '北京': \n");
myscript.Append("FillData('" + GetCityStr("北京") +"'); \n");
myscript.Append("break; \n");
myscript.Append("case '上海': \n");
myscript.Append("FillData('" + GetCityStr("上海") + "'); \n");
myscript.Append("break; \n");
myscript.Append("case '济南': \n");
myscript.Append("FillData('" + GetCityStr("济南") + "'); \n");
myscript.Append("break; }\n");
myscript.Append(" }\n");
//使用注册脚本方法在页面的客户端,注册这个字符串编写的脚本方法。
Page.ClientScript.RegisterClientScriptBlock(typeof(string), "seekCity", myscript.ToString(),true);
}
//通过获取城市名,返回城市的区县字符串
private string GetCityStr(string INcity)
{
string city="";
switch (INcity)
{
case "北京":
city = "朝阳,海淀,东城,西城";
break;
case "济南":
city = "历城,历下,市中,天桥";
break;
}
//返回包含区县的 字符串连接 return city;
}
页面层直接调用:
onclick="seekCity()"
切割字符:
function FillData(strcity)
{
document.getElementById("DropDownList1").options.length=;
var indexofcity;
var city;
//切割传递来的字符串
while(strcity.length>)
{
//判断是否是最后一个字符串
indexofcity=strcity.indexOf(",");
if(indexofcity >)
{
city=strcity.substring(,indexofcity);
strcity=strcity.substring(indexofcity+);
//填充下拉框
document.getElementById("DropDownList1").add(new Option(city,city));
}
else
{
// 如果是最后一个字符串
document.getElementById("DropDownList1").add(new Option(strcity,strcity));
break;
}
};
}
Iframe实现局部刷新:
要求刷新页面JS代码:
<script language="javascript">
function Search()
{
var city=document.getElementById("TextBox1").value;
if(city !="")
{
document.getElementById("iframe1").src="myframe.aspx?city=" +city;
}
}
被请求页面代码:
<asp:DropDownList ID="DropDownList1" runat="server" Width="154px">
protected void Page_Load(object sender, EventArgs e)
{
//获取传递过来的参数
string city = Request.QueryString["city"];
//判断城市名
switch (city)
{
case "北京":
//填充相关的区域
DropDownList1.Items.Clear();
DropDownList1.Items.Add("朝阳");
DropDownList1.Items.Add("海淀");
DropDownList1.Items.Add("东城");
DropDownList1.Items.Add("西城");
break;
}
}
Ajax与C#应用详细实例的更多相关文章
- jQuery Ajax方法调用 Asp.Net WebService、WebMethod 的详细实例代码
将以下html存为ws.aspx <%@ Page Language="C#" AutoEventWireup="true" %> <scri ...
- 原生AJAX入门讲解(含实例)
相对于jQuery.YUI以及其他一些类库的AJAX封装,原生JS的AJAX显得那么的尴尬,兼容性不好,要记很多的方法属性,调用不便捷,代码臃肿...但我还是想说,原生JS才是最根本最底层的知识(虽然 ...
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...
- Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误)
Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误) Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误) 升级到Truffle3.0 如果之前安装的是Truf ...
- SpringCloud+MyBatis+Redis整合—— 超详细实例(二)
2.SpringCloud+MyBatis+Redis redis①是一种nosql数据库,以键值对<key,value>的形式存储数据,其速度相比于MySQL之类的数据库,相当于内存读写 ...
- Ajax跨域:Jsonp实例--百度搜索框下拉提示
Ajax跨域:Jsonp实例--百度搜索框下拉提示 一.总结 一句话总结:a.找好接口:b.用script标签的src引入文件(json数据):c.定义及实现上一步引入文件中的函数 1.如何找到一个网 ...
- SQL的7种连接查询详细实例讲解
SQL的7种连接查询详细实例讲解 原文链接:https://mp.weixin.qq.com/s/LZ6BoDhorW4cSBhaGy8VUQ 在使用数据库查询语句时,单表的查询有时候不能满足项目的业 ...
- jquery ajax php+mysql 无刷新分页 详细实例
最近在接触jquery和ajax,当前项目也会用到分页,为了用户体验更好一些,就准备用无刷新分页,这个demo很适合新手学习查看,写的比较清晰,话不多说,直接上代码吧. 首先是html页面,index ...
- jquery ajax jsonp跨域调用实例代码
今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Lan ...
随机推荐
- LeetCode之ReverseWorldString
题目:将一个英文句子翻转,比如:the sky is blue 翻转后变为:blue is sky the 分析:我的实现方法是,利用栈将单词存储起来,然后再顺序拿出来,单词进栈还需注意添加空格. 主 ...
- javascript中数组方法小计
一:数组的常用方法: 1:join(); 将数组转为字符串显示.不输入参数,默认以逗号连接:输入参数,则以参数连接. var arr=[1,2,3]; console.log(arr.join()); ...
- AJAX远程跨域获取数据
//本地获取json文件 $.ajax({ url : 'json.php', type : 'post', dataType : 'json',//返回json数据格式 success : func ...
- web安全记录
前端 CSRF 跨站请求伪造 客户端添加伪随机数,后台验证 验证码 中间人攻击 SSL证书加密 xss(跨站脚本攻击)漏洞,微软的字符检验(自动) 文本展示编码处理 做标签展示的文本尤其过滤脚本 Co ...
- 各种非标232,485协议,自定义协议转modbus协议模块定制开发,各种流量计协议转modbus,
工业现场经常会碰到通过485或者232采集各类仪表数据,但是很多早期的仪表和设备不支持标准modbus协议,而是采用自定义的协议,这些协议数据由plc或者dcs系统来实现采集,不仅费时麻烦,而且不方便 ...
- KDE子项目一览 good
https://www.kde.org/applications/development/ https://www.kde.org/applications/graphics/ https://www ...
- 提升进程权限为DEBUG权限
在网上也看到了一些提升进程令牌的函数但都不怎么好用,最后我还是从一个黑客后门程序的源代码中提取出了一个好的提升进程令牌的函数,不敢独享,跟大家分享下.那个后门真的写的很好... Hysia提示你: 这 ...
- linux ssh 不用密码自动登录的几种方法
1. 自动ssh/scp方法== A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运 ...
- web本地存储-WebSQL
Web SQL数据库API实际上未包含在HTML 5规范之中,它是一个独立的规范,它引入了一套使用SQL操作客户端数据库的API.W3C 官方在 2011 年 11 月声明已经不再维护 Web SQL ...
- why constrained regression and Regularized regression equivalent
problem 1: $\min_{\beta} ~f_\alpha(\beta):=\frac{1}{2}\Vert y-X\beta\Vert^2 +\alpha\Vert \beta\Vert$ ...