不能用ajax

yanbinquan 2010-07-05 02:23:38
我在网上找了一个三级联动的ajax源码来修改自己的代码,但修改了一个早上还是不能实现无刷新效果
aspx里面的代码

<script type="text/javascript" src="ajax_func.js"></script>
<script>
function changsheng(va)
{

if(va!='0')
{
var city = document.getElementById("city");
city.disabled=false;
var qu = document.getElementById("qu");
qu.disabled=true;

var f=document.getElementById("qu");
f.options.length=1;
var url="Handler.ashx?type=sheng&id="+va;
send_request("GET",url,null,"text",populateClass3);
}
}
function populateClass3(){
var f=document.getElementById("city");
if(http_request.readyState==4){
if(http_request.status==200){
var list=http_request.responseText;
var classList=list.split("|");
f.options.length=1;
for(var i=0;i<classList.length;i++){
var tmp=classList[i].split(",");
f.add(new Option(tmp[1],tmp[0]));
}
}else{
alert("您所请求的页面有异常。");
}
}
}
</script>


<td ><select id="sheng" runat="server" onchange="changsheng(this.value)" style="width: 121px">
<option selected="selected" value="0">--选择产品类型--</option></select></td>
<td ><select id="city" runat="server" onchange="changshi(this.value)">
<option>--请选产品型号--</option></select></td>


Handler.ashx的代码

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Data.SqlClient;
using System.Data;

public class Handler : IHttpHandler {

public void ProcessRequest (HttpContext context) {
string type = context.Request.QueryString["type"];
if (type.Equals("sheng"))
{
string id = context.Request.QueryString["id"];
context.Response.ContentType = "text/plain";
context.Response.Write(getSheng(id));//这个是从数据库中根据传来省的id 查询出来的。市的名字和主键,主键以便去查区的名字
}
}


public string getSheng(string sheng)
{
string mystring = "select * from tb_barcodeType";
DataSet ds = dataOperate.getDataset(mystring, "tb_barcodeType");

string str = "";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (i == ds.Tables[0].Rows.Count - 1)
{
str += ds.Tables[0].Rows[i]["code"].ToString() + "," + ds.Tables[0].Rows[i]["name"].ToString();
}
else
{
str += ds.Tables[0].Rows[i]["code"].ToString() + "," + ds.Tables[0].Rows[i]["name"].ToString() + "|";
}
}
return str.Trim();
}


public bool IsReusable {
get {
return false;
}
}

}

...全文
99 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bill15021200 2010-07-05
  • 打赏
  • 举报
回复
var xmlhttp = false;
var msxmls = new Array('Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP');
getHttpRequestObject();
function getHttpRequestObject() {
try {
for (var i = 0; i < msxmls.length; i++) {
return xmlhttp = new ActiveXObject(msxmls[i]);
}
} catch (e) { xmlhttp = new XMLHttpRequest(); }
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType('text/xml');
}
return xmlhttp;
}

function objectReturn2(url, fun) {
xmlhttp.open("get", url, true); //XMLHttpRequest发送请求
xmlhttp.onreadystatechange = fun; //设置回调函数
xmlhttp.send(null); // 发送结束请求
}// fun是方法

function objectReturn(url) {
objectReturn2(url, function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) alert(xmlhttp.responseText); });
}
bill15021200 2010-07-05
  • 打赏
  • 举报
回复
你JS 里面有没有 创建xmlHttpRequest?
bill15021200 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yanbinquan 的回复:]
C# code

function changsheng(va)
{

if(va!='0')
{
var city = document.getE……
[/Quote]

你吧一些没用的先注释了。

moonwrite 2010-07-05
  • 打赏
  • 举报
回复
还是用jQuery吧 封装的好

ashx没有断下拉 所有没有收到请求
yanbinquan 2010-07-05
  • 打赏
  • 举报
回复

function changsheng(va)
{

if(va!='0')
{
var city = document.getElementById("city");
city.disabled=false;
var qu = document.getElementById("qu");
qu.disabled=true;

var f=document.getElementById("qu");
f.options.length=1;
var url="Handler.ashx?type=sheng&id="+va;
send_request("GET",url,null,"text",populateClass3);
}
}
function populateClass3(){
var f=document.getElementById("city");
if(http_request.readyState==4){
if(http_request.status==200){
var list=http_request.responseText;
var classList=list.split("|");
f.options.length=1;
for(var i=0;i<classList.length;i++){
var tmp=classList[i].split(",");
f.add(new Option(tmp[1],tmp[0]));
}
}else{
alert("您所请求的页面有异常。");
}
}
}


怀疑这里有错,但不会修改,帮我看看好吗
bill15021200 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yanbinquan 的回复:]
引用 5 楼 bill15021200 的回复:

你数据能出来吧? 就是没有无刷新效果?


没有数据出来!!我断点运行程序,程序没有进入Handler.ashx
[/Quote]
检查脚本~
yanbinquan 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bill15021200 的回复:]

你数据能出来吧? 就是没有无刷新效果?
[/Quote]

没有数据出来!!我断点运行程序,程序没有进入Handler.ashx
bill15021200 2010-07-05
  • 打赏
  • 举报
回复
如果。 数据可以出来没问题 只是实现不了无刷新, 有可能是脚本的问题。你检查下js脚本看看。
bill15021200 2010-07-05
  • 打赏
  • 举报
回复
Handler.ashx 可以直接调试的。
我最近开发都用这个, 可以调试呀。
bill15021200 2010-07-05
  • 打赏
  • 举报
回复
你数据能出来吧? 就是没有无刷新效果?
yanbinquan 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 leejelen 的回复:]

貌似AJAX是脚本来的。调试进不去吧。能不能直接调试Handler.ashx这个页面!
[/Quote]

Handler.ashx不可以直接调试
anbs01 2010-07-05
  • 打赏
  • 举报
回复
精!!!!!!!!!!!!!!!!!!!!!
leejelen 2010-07-05
  • 打赏
  • 举报
回复
貌似AJAX是脚本来的。调试进不去吧。能不能直接调试Handler.ashx这个页面!
yanbinquan 2010-07-05
  • 打赏
  • 举报
回复
断点运行程序,程序不能运行到Handler.ashx

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧