使用Jquery解决Asp.Net中下拉列表值改变后访问服务器刷新界面。
使用DropDownList控件时,改变选项时,获取服务端数据库数据并刷新界面数据。
1. 绑定DropDownList控件SelectedIndexChanged事件。
2. AutoPortBack属性改为True。
.Net程序员大多都会这么做,我开始也是,但是每次刷新整个界面就坑了,它把下拉列表也刷新了,每次下拉列表刷新后重新加载会再次触发SelectedIndexChanged事件,于是数据怎么选都会被改回来,刷新界面用户体验也不好。于是自己整理了一套ajax+asmx解决方案。下面将介绍ajax与asmx使用。代码中用到的数据类型就不写出来了,代码不难,看看就能自己写了。
Jquery代码:
<script>
$(document).ready(function () {
$.ajax({
type: 'post',
url: '../WebSerice/StatisticsServices.asmx/BindDropDownListVersions',
async: true,
data: {},
success: function (result) {
var versions = $(result).find('string').text().split('|');
$.each(versions, function (i, item) {
$(".versionsSelectList").append("<option value='Value'>" + versions[i] + "</option>");
});
},
error: function () {
alert('ERROR!');
}
}); });
function BindSelectedControler() {
var ver = $(".versionsSelectList option:selected").text();
$.ajax({
type: 'post',
url: '../WebSerice/StatisticsServices.asmx/GetVersionsInfoStatistics',
async: true,
data: { "versions": ver },
success: function (result) {
var info = $(result).find('string').text().split('~');
var control = $("#statisticstable tbody");
control.empty();
$.each(info, function (i, item) {
control.append("<tr>");
var info = item.split('|');
$.each(info, function (v, temp) {
control.append("<td>" + temp + "</td>");
});
control.append("</tr>");
});
},
error: function () {
alert('ERROR!');
}
});
}
</script>
script中有两个ajax:
第一个是页面初始化时加载数据到下拉列表中。
第二个方法中的ajax是当下拉列表值改变时触发,需要绑定<select>标签的onchange事件。
页面部分代码:
<h3>统计</h3><span>注册码版本:</span>
<select class="versionsSelectList" onchange="BindSelectedControler()"></select>
<table class="table table-bordered" id="statisticstable">
<thead>
<tr>
<th>版本</th>
<th>所有</th>
<th>已注册</th>
<th>未注册</th>
<th>已到期</th>
</tr>
</thead>
<tbody></tbody>
</table>
我们使用Asp.Net中的.asmx服务。
服务端代码:
[WebMethod]
public string BindDropDownListVersions()
{
string result = "";
for (int i = ; i < _select.StatisticsList.Count; i++)
{
result += _select.StatisticsList[i].VersionsInfo.RegVersions;
if (i != _select.StatisticsList.Count - ) result += "|";
}
return result;
}
[WebMethod]
public string GetVersionsInfoStatistics(string versions)
{
string result = "";
List<StatisticsInfo> verinfolist = GetListStatisticsInfo(versions); int i = ;
foreach (StatisticsInfo item in verinfolist)
{
i++;
result += item.AuthorityInfo.AuthorityName + "|";
result += item.MacRegCode.ToString() + "|";
result += item.Registered.ToString() + "|";
result += item.UnRegistered.ToString() + "|";
result += item.EndTimeReg.ToString() ;
if (i != verinfolist.Count)
result += "~";
}
return result;
}
第一个是无参方法,ajax中直接方法名即可访问。
第二个方法带一个参数,该参数要与ajax中data传参名称一致。
服务类要注意二点不然报错。
- [WebMethod]不能省略。
- 访问修饰符不要写成private。
使用Jquery解决Asp.Net中下拉列表值改变后访问服务器刷新界面。的更多相关文章
- 解决ASP.NET中的各种乱码问题
解决ASP.NET中的各种乱码问题 阅读目录 开始 页面显示乱码问题 AJAX提交的数据乱码问题 JavaScript中正确的URL编码方式 ASP.NET中正确的URL编码方式 正确的URL编码方式 ...
- 取得<asp:TextBox中的值:
取得<asp:TextBox中的值: var a= document.getElementById("<%= (ID名).ClientID %>").valu ...
- 解决ASP.NET中Redis 每小时6000次访问请求的问题
原文:解决ASP.NET中Redis 每小时6000次访问请求的问题 虽然ServiceStack v4是商业支持的产品,但我们也允许免费使用小型项目和评估目的.上面的NuGet包中包含可以使用许可证 ...
- 解决java web中safari浏览器下载后文件中文乱码问题
解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...
- 面试官:如果 http 响应头中 ETag 值改变了,是否意味着文件内容一定已经更改
本篇文章由我的 一日一题 中的四个 Issue 组合而成 [Q111]http 响应头中的 ETag 值是如何生成的 [Q112]如果 http 响应头中 ETag 值改变了,是否意味着文件内容一定已 ...
- jquery获取input输入框中的值
如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML <input type="tex ...
- js与jquery获取input输入框中的值
如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML 一.jquery获取input文本框中的值 通过 ...
- JS中取得<asp:TextBox中的值
var s = document.getElementById("<%=txt_DaShen.ClientID %>").value; 注:txt_DaShen 为as ...
- 正确处理WPF中Slider值改变事件的方式
最近在用WPF数据绑定重写一下播放器项目时遇到的关于Slider的问题,在窗体透明度调节和播放进度调节上用了Slider控件.调节窗体透明度我是 这么想的:将窗体的Opacity属性的值与Slider ...
随机推荐
- PHP获取文件扩展名的多种方法
PHP获取文件扩展名的N种方法. 第1种方法: function get_extension($file) { substr(strrchr($file, '.'), 1): } 第2种方法: fun ...
- DotNET知识点总结三(笔记整合)
使用接口的注意事项: 接口中的成员不能加访问修饰符 接口中的成员不能有任何实现 实现接口的子类必须实现接口的全部成员 一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口 ...
- mongodb 增加用户以及认证用户
test>use admin switched to db admin admin>db.addUser('yshy','yshy') { "user" : " ...
- 设计模式(十一):FACADE外观模式 -- 结构型模式
1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性.例子1:一个电源总开关可以控制四盏灯.一个风扇 ...
- 【转】C++读写二进制文件
原文网址:http://blog.csdn.net/lightlater/article/details/6364931 摘要: 使用C++读写二进制文件,在开发中操作的比较频繁,今天有幸找到一篇文章 ...
- 黑马程序员_Java其他对象(System,Runtime,Date,Calendar,Marh-Random)
System System类包含一些有用的类字段和方法(都是静态的).它不能被实例化. 在System类提供的设施中,有标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的 ...
- 切割 bitmap
最近在安卓手机控制蓝牙打印机打印图片,有时候图片太大,考虑到bitmap的切割,在此,献上代码,各位小主指点 public class ImageSplitter { public static Ar ...
- 转载——Struts2中的constant详解
http://bhw1015.iteye.com/blog/1258441 通过对这些属性的配置,可以改变Struts 2 框架的一些默认行为,这些配置可以在struts.xml文件中完成,也可以在s ...
- Linux 下文件监控
本文转自http://www.jiangmiao.org/blog/2179.html 在日常应用中,常常会遇到以下场景,监控文件夹A,若文件夹中的B文件发生变化,则执行C命令.Linux下可以通过i ...
- struts2.1.*中再实现了一个servlet的方法
学习Struts2也有一段时间了,今天用Servlet写了一个验证码,然后搬到Struts2中,惊奇地发现Servlet无法访问,出现404错误!后来折腾了半天,终于找出原因了.这也算我学习中的一个重 ...