小山

付出最大努力,追求最高成就,享受最佳生活,收获无悔人生

博客园 首页 新随笔 联系 订阅 管理
  199 Posts :: 0 Stories :: 1221 Comments :: 76 Trackbacks

1.html代码
<HTML>
    
<HEAD>
        
<title>Ajax实现无刷新三联动下拉框</title>
        
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
        
<meta content="C#" name="CODE_LANGUAGE">
        
<meta content="JavaScript" name="vs_defaultClientScript">
        
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
        
<SCRIPT language="javascript">            
            
//城市------------------------------
            function cityResult() 
            

                
var city=document.getElementById("DropDownList1");
                AjaxMethod.GetCityList(city.value,get_city_Result_CallBack);
            }

            
            
function get_city_Result_CallBack(response)
            
{
                
if (response.value != null)
                
{                    
                    
//debugger;
                    document.all("DropDownList2").length=0;                
                
var ds = response.value;
                    
if(ds != null && typeof(ds) == "object" && ds.Tables != null)
                    
{                    
                        
for(var i=0; i<ds.Tables[0].Rows.length; i++)
                    
{
                        
var name=ds.Tables[0].Rows[i].city;
                      
var id=ds.Tables[0].Rows[i].cityID;
                      document.all(
"DropDownList2").options.add(new Option(name,id));
                    }

                    }

                }
                
                
return
            }

            
//市区----------------------------------------
            function areaResult() 
            

                
var area=document.getElementById("DropDownList2");
                AjaxMethod.GetAreaList(area.value,get_area_Result_CallBack);
            }

            
function get_area_Result_CallBack(response)
            
{
                
if (response.value != null)
                
{                    
                    document.all(
"DropDownList3").length=0;                
                
var ds = response.value;
                    
if(ds != null && typeof(ds) == "object" && ds.Tables != null)
                    
{                    
                        
for(var i=0; i<ds.Tables[0].Rows.length; i++)
                    
{
                      
var name=ds.Tables[0].Rows[i].area;
                      
var id=ds.Tables[0].Rows[i].areaID;
                      document.all(
"DropDownList3").options.add(new Option(name,id));
                    }
                
                    }

                }

                
return
            }

            
function getData()
            
{
                
var province=document.getElementById("DropDownList1");
                
var pindex = province.selectedIndex;
                
var pValue = province.options[pindex].value;
                
var pText  = province.options[pindex].text;
                
                
var city=document.getElementById("DropDownList2");
                
var cindex = city.selectedIndex;
                
var cValue = city.options[cindex].value;
                
var cText  = city.options[cindex].text;
                
                
var area=document.getElementById("DropDownList3");
                
var aindex = area.selectedIndex;
                
var aValue = area.options[aindex].value;
                
var aText  = area.options[aindex].text;
                
                
var txt=document.getElementById("TextBox1");                                

                document.getElementById(
"<%=TextBox1.ClientID%>").innerText="省:"+pValue+"|"+pText+"市:"+cValue+"|"+cText+"区:"+aValue+"|"+aText;
            }

        
</SCRIPT>
    
</HEAD>
    
<body ms_positioning="GridLayout">
        
<form id="Form1" method="post" runat="server">
            
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 96px; POSITION: absolute; TOP: 32px" cellSpacing="1"
                cellPadding
="1" width="300" border="1" bgColor="#ccff66">
                
<TR>
                    
<TD>省市</TD>
                    
<TD><asp:dropdownlist id="DropDownList1" runat="server"></asp:dropdownlist></TD>
                
</TR>
                
<TR>
                    
<TD>城市</TD>
                    
<TD><asp:dropdownlist id="DropDownList2" runat="server"></asp:dropdownlist></TD>
                
</TR>
                
<TR>
                    
<TD>市区</TD>
                    
<TD><asp:dropdownlist id="DropDownList3" runat="server"></asp:dropdownlist></TD>
                
</TR>
            
</TABLE>
            
<asp:TextBox id="TextBox1" style="Z-INDEX: 102; LEFT: 416px; POSITION: absolute; TOP: 48px" runat="server"
                Width
="424px"></asp:TextBox><INPUT style="Z-INDEX: 103; LEFT: 456px; WIDTH: 56px; POSITION: absolute; TOP: 96px; HEIGHT: 24px"
                type
="button" value="test" onclick="getData();">
        
</form>
    
</body>
</HTML>
2.cs代码
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace AjaxTest
{
    
/// <summary>
    
/// Summary description for WebForm1.
    
/// </summary>

    public class WebForm1 : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.DropDownList DropDownList1;
        
protected System.Web.UI.WebControls.DropDownList DropDownList2;
        
protected System.Web.UI.WebControls.TextBox TextBox1;
        
protected System.Web.UI.WebControls.DropDownList DropDownList3;
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{    
            Ajax.Utility.RegisterTypeForAjax(
typeof(AjaxMethod));
            
if(!Page.IsPostBack)
            
{
                
this.DropDownList1.DataSource=AjaxMethod.GetProvinceList();
                
this.DropDownList1.DataTextField="province";
                
this.DropDownList1.DataValueField="provinceID";
                
this.DropDownList1.DataBind();
                
                
this.DropDownList1.Attributes.Add("onclick","cityResult();");
                
this.DropDownList2.Attributes.Add("onclick","areaResult();");
            }

        }


        
Web Form Designer generated code        
    }

}
3.AjaxMethod
using System;
using System.Data;
using System.Data.SqlClient;
namespace AjaxTest
{
    
/// <summary>
    
/// Summary description for AjaxMethod.
    
/// </summary>

    public class AjaxMethod
    
{
        
GetProvinceList

        
GetCityList

        
GetAreaList
    
        
GetDataSet
    }

}
4.web.config
<httpHandlers>
            
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
    
</httpHandlers>
5.ajax.dll下载/Files/singlepine/Ajax.rar
6.真实数据库下载area1.rar
7.源代码下载AjaxTest.rar
posted on 2005-10-19 16:21 小山 阅读(54859) 评论(206)  编辑 收藏 网摘 所属分类: Ajax&AltasDropDownList

Feedback

有个bug!
就是选第一层省市的时候 第三层市区并没有因为第二层的改变而跟着改变
也就是只要直接父层才能影响下一层
麻烦小山帮我解决一下
QQ:42567628 E-Mail: 42567628@qq.com

  回复  引用    

@明明
把povince改成province

  回复  引用    

#203楼 2006-09-12 16:14 wstcl[未注册用户]
为什么脚本会出现AjaxMethod未定义啊,我已经在后台中定义了啊

  回复  引用    

#204楼 2006-09-12 23:32 dejack[未注册用户]
learning.............
  回复  引用    

#205楼 2006-09-15 09:33 妮妮[未注册用户]
谢谢你,小山,我下载运行后其他的一切都好用,只是有一点点小的笔误,你把public static DataSet GetPovinceList()
{
string sql="select * from povince";
return GetDataSet(sql);
}
这段代码中的province写成了povince,与你定义的数据库不一致出错,再次感谢你.我这两天正要用到这个.

  回复  引用    

#206楼 2006-09-15 14:35 Anson[未注册用户]
用户从数据库中取得相关的地区/城市记录后,怎么样把数据库中的记录用目前的下拉列表显示出来?
  回复  引用    

你好,我下载你的示例,感觉很好,谢谢拉,小山
  回复  引用    

你好,我在用的时候,把无刷新放在ascx文件里面,但不知道怎么拉,老是获得不了第二个Dropdownlist里面的数据,我用Request.form["aa"]也不行,在线求救,谢谢小山,希望快点回答
  回复  引用    

我想请问一下,这个AJAX联动在火狐能用吗?我自己试 了一下,无法联动,不知道是什么原因?哪位高手可以指导一下?在Opera里面没有问题,要是小山老师有空的话可以联系我
MSN :sharmy1220@hotmail.com,不胜感激

  回复  引用    

#210楼 2006-09-18 23:58 mign[未注册用户]
@Anson

我也想知道,请小山帮助一下,多谢!

  回复  引用    

#211楼 2006-09-19 00:00 mign[未注册用户]
用户从数据库中取得相关的地区/城市记录后,怎么样把数据库中的记录用目前的下拉列表显示出来?

就是修改时怎么样匹配到旧的?

请小山帮助一下,谢

  回复  引用    

#212楼 2006-09-19 11:37 Anson[未注册用户]
支持mign,目前我也遇到这个问题.
  回复  引用    

#213楼 2006-09-19 11:41 Anson[未注册用户]
支持mign,目前我也遇到这个问题.
  回复  引用    

#214楼 2006-09-20 08:40 笑疯^_^      
小山,你好,我在一个多层架构的系统中用到了你这个ajax三联动, 不过我用的是ajaxpro,可我在用的时候老是出现"AjaxMethod"未定义,我在业务逻辑层定义了 /// <summary>
///根据国家代码取得城市
/// </summary>
/// <param name="CC_ID">国家代码</param>
/// <returns>返回DataSet</returns>
[AjaxPro.AjaxMethod]
public DataSet GetStateList(int CC_ID)
{
return dal.GetStateList(CC_ID);
}
/// <summary>
///根据省区编号来查询城市
/// </summary>
/// <param name="CST_ID">省区ID</param>
/// <returns>DataSet</returns>
[AjaxPro.AjaxMethod]
public DataSet GetCityList(int CST_ID)
{
return dal.GetCityList(CST_ID);
}

我在页面后台代码中是这样写的
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(jeb.BusinessRule.AjaxMethod));

if (!IsPostBack)
{
InitData();
}
}

js中这个调用的 AjaxMethod.GetStateList(country.value,get_State_Result_CallBack);
然后老是提示错误:"AjaxMethod"未定义,在业务逻辑层我已经添加引用的,整个项目也添加引用了,webconfig中我也加了这个
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
可就是不行,我急切等待你们的答复,我的邮箱是:
longping520@126.com
QQ是95401537希望能加我

  回复  引用  查看    

#215楼 2006-09-22 10:23 凯[未注册用户]
请问这个程序可否在用户控件里面实现~?要如何配置~???急~~~~!
  回复  引用    

#216楼 2006-09-22 11:45 凯[未注册用户]
终于解决在用户控件里怎么使用这个东东了~!还在疑惑的找我,QQ
:329516647

  回复  引用    

#217楼[楼主] 2006-09-23 12:42 小山      
在用户控件中用也是一样的,只是加一个用户控件的前缀就可以了,假如你的用户控件叫UCuser,则把原来的
var city=document.getElementById("DropDownList1");
改成
var city=document.getElementById("UCuser1_DropDownList1");
即可

  回复  引用  查看    

#218楼 2006-09-27 09:41 Anson[未注册用户]
小山,麻烦帮忙看下这个问题:
用户从数据库中取得相关的地区/城市记录后,怎么样把数据库中的记录用目前的下拉列表显示出来?

就是修改时怎么样匹配到旧的?

怎么把默认的值显示出来呢? 比较急,。谢谢。

  回复  引用    

#219楼 2006-09-29 10:05 庆庆[未注册用户]
小山大哥,我在page_load里已经添加了
Ajax.Utility.RegisterTypeForAjax(typeof(AjaxMethod));
可是还是出现错误:'AjaxMethod' 未定义”
请指点指点。

  回复  引用    

#220楼 2006-10-01 09:00 kuuy[未注册用户]
这个博客有源码吗?
  回复  引用    

异常详细信息: System.ArgumentException: 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
  回复  引用    

#222楼 2006-10-09 12:35 nessie[未注册用户]
我在VS.2005和AjaxPro.2都实现了,效果不错,但是有个问题,在GridView的编辑状态下使用时,联动可以实现,但点击保存时就会报错"回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> "如果改成<%@ Page Language="C#" EnableEventValidation="false" %>就不报错了,但用ajax生成的下拉列表的值都取不到了,这个有什么办法好解决吗?
  回复  引用    

#223楼 2006-10-10 15:09 whu[未注册用户]
有没有vb.net版本的?
  回复  引用    

为什么发布到服务器上 出现

行:17
字符:5
错误:'AjaxMethod'未定义
代码:0

本机运行无错

  回复  引用    

'AjaxMethod'未定义
  回复  引用    

#226楼 2006-10-25 23:24 yao[未注册用户]
string sql="select * from city where father="+provinceid;
string sql="select * from area where father="+cityid;

我不明白你代码中这两行怎么运行过去的.

father字段可是字符串型啊.

string sql="select * from city where father='"+provinceid+"'";
string sql="select * from area where father='"+cityid+"'";

  回复  引用    


未定义 我知道了.

我是问: 本机运行无错

发布到服务器上出现出现未定义 是为什么.

  回复  引用    

#228楼 2006-11-02 14:48 venric[未注册用户]
@小山
@黑白之间

我也是发布到服务上也不行啊....找出问题根源出来才行!

  回复  引用    

@whu
http://community.csdn.net/Expert/topic/5126/5126740.xml?temp=.3156244

仿小山大哥的,数据库就是用了area.mdb,不过字段修改了
area - areaname
city - cityname
province -provincename
新添加了一字段
provincename 以便于支持动态输入查询

向小山大哥表示感谢

  回复  引用    

#230楼 2006-11-13 17:19 dfgfd[未注册用户]
为什么改变第一项的值,第三项还是没有变呢,非要去改第二项才能改变第三项吗。
  回复  引用    

#231楼 2006-11-14 11:40 Nina      
小山大哥,我在page_load里已经添加了
Ajax.Utility.RegisterTypeForAjax(typeof(AjaxMethod));
可是还是出现错误:'AjaxMethod' 未定义”
请指点指点。
4.web.config
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>

這個也設置了。
注:我用的是:vs 2005 vb.net

  回复  引用  查看    

#232楼 2006-11-14 11:46 Nina      
@nessie
你都實現了,可以共享出來看看嗎?

  回复  引用  查看    

对于LZ的东东,东西是不错的。
但是在实际应用中,个人认为还存在适用范围过窄的情况,我的意思是对于多级的联动下拉框,本身可以抽象成一个通用的应用模型,这样在实际应用时只要进行响应的配置修改就可以适用于其它的应用场合,这样才具有真正的实用价值,否则每一个应用场景下都要具体的进行代码实现,非常麻烦。
在我的一个项目中已经大致实现了一个n级联动下拉框方案,只要后台的数据模型定义好,则系统自动生成对应的n级下拉框,并实现联动操作,没有使用所谓的一些Ajax类库(框架),但是利用了Ajax的实现手段(XmlHttpRequest+Script)实现了无刷新联动。
这里面最麻烦的是数据模型的设计,即n级联动数据的处理。呵呵。
如果有兴趣探讨的,可以Email: yaorb@msn.com

  回复  引用    

另外补充一点,对于LZ使用的数据传递方式,即"省:XXXX|广州省市:|......"这样的数据传输方式,个人觉得不是很通用,既然已经使用了Ajax技术,何不尝试使用JSON方式传递数据,这样对于数据的处理更加灵活和通用。
  回复  引用    

救急啊,救急啊!
我把我现在的都改成这样做了,不过发现DropDownList2.Text和DropDownList2.Value属性都没有了啊。怎样在程序里面可以得到这两个值啊。

  回复  引用    

#236楼 2006-11-20 18:17 jktang[未注册用户]
select语句错了.
Dim sql As String = "select * from city where father='" & provinceid & "'"

Dim sql As String = "select * from area where father='" & cityid & "'"

  回复  引用    

#237楼 2006-11-22 19:34 taxue[未注册用户]
为什么使用access数据库就不可以呢?
  回复  引用    

access也是一样的
  回复  引用    

#239楼 2006-11-27 10:10 kj[未注册用户]
为什么发布到服务器上 出现

行:17
字符:5
错误:'AjaxMethod'未定义
代码:0

本机运行无错

  回复  引用    

我下载 后只能显示省市,选择省市后没有动作,点击按钮系统还抱错。如何解决
我是在2005中测试的。

  回复  引用    

有人会Gridview的编辑模板里实现二级联动吧!
如果有,请指导一下一步
MSN:fangwenying@hotmail.com
手机:13758353111

  回复  引用    

#242楼 2006-12-11 16:17 快乐[未注册用户]
问一个ajax的问题:dropdownlist的值填充是在html里用javascript填充的。但是在.cs代码里保存时获得不了所选的值。这是为什么??急

  回复  引用    

#243楼 2006-12-19 12:59 何求[未注册用户]
小山写的很ok.
不过你的数据库的父类id是文本型的, 你的sql这样写是会出错的.还有应该在获取城市之后接着做获取地区操作,

  回复  引用    

#244楼 2006-12-20 21:44 jiven[匿名]
选择省份函数加上选择城市函数比较好点,随时保持3下拉数据的正确性,
onclick事件改为onchange更佳
function get_city_Result_CallBack(response)
{
if (response.value != null)
{
//debugger;
document.all("DropDownList2").length=0;    
     var ds = response.value;
if(ds != null && typeof(ds) == "object" && ds.Tables != null)
{
for(var i=0; i<ds.Tables[0].Rows.length; i++)
     {
     var name=ds.Tables[0].Rows[i].city;
       var id=ds.Tables[0].Rows[i].cityID;
       document.all("DropDownList2").options.add(new Option(name,id));
     }
     var area=document.getElementById("DropDownList2");
AjaxMethod.GetAreaList(area.value,get_area_Result_CallBack);
}
}

return
}

this.DropDownList1.Attributes.Add("onchange","cityResult();");
this.DropDownList2.Attributes.Add("onchange", "areaResult();");
this.DropDownList3.Attributes.Add("onchange", "getData();");

  回复  引用    

#245楼 2006-12-20 22:00 jiven[匿名]
当然省份下拉初始化不要选择任何省份
this.DropDownList1.Items.Insert(0, new ListItem("请选择", "0"));

  回复  引用    

#246楼 2006-12-20 22:16 jiven[匿名]
再于get_area_Result_CallBack(response)函数中最后加入getData()函数调用,可即使记录3连动下拉的值情况,将文本框display设置成none,从而解决后台无法获得下拉值的问题。
function get_area_Result_CallBack(response)
{
if (response.value != null)
{
document.all("DropDownList3").length=0;    
     var ds = response.value;
if(ds != null && typeof(ds) == "object" && ds.Tables != null)
{
for(var i=0; i<ds.Tables[0].Rows.length; i++)
     {
       var name=ds.Tables[0].Rows[i].area;
       var id=ds.Tables[0].Rows[i].areaID;
       document.all("DropDownList3").options.add(new Option(name,id));
     }
}
getData();
}
return
}

<asp:TextBox id="TextBox1" style="Z-INDEX: 102; LEFT: 416px; POSITION: absolute; TOP: 48px;display:none" runat="server"
Width="424px"></asp:TextBox>

  回复  引用    

请问小山,我的这个地方
ds.Tables[0].Rows[i].area老是提示"undefined"
这个是为什么呢?换成这样子
ds.Tables[0].Rows[i].["area"]也不行


  回复  引用    

#248楼 2006-12-21 17:35 fdsgd[未注册用户]
sdfgdfgdfg
  回复  引用    

斑竹高人,我用了你的例子做了一个测试,是用的oracle的数据库,但是老是出错,最开始初始化时省份能够正确的显示出来,但是一改变省份就出错就像上面所说的--老是提示"undefined",怎样在js中操作后台传来的dataset呢?请指点迷津啊!
  回复  引用    

@jiangnan
你程序下载后,province少了个r,请问一下:我仅把AjaxMethod.cs移到另外一个文件夹下,咋就不行,百思不得其解.
Ajax.Utility.RegisterTypeForAjax(typeof(Travel.BusinessSystems.AjaxMethod));
//是将AjaxMethod.cs放到一个文件夹下重新给他命名空间:Travel.BusinessSystems
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
这样以后,哪些地方要改,对AJAX是初学,请小山老师帮忙.急呀!!!小山老师每篇都很经典,也希望多写一些!

  回复  引用    

太感谢楼主了
谢谢你啊
我找这个找得好辛苦哦

  回复  引用    

#252楼 2007-02-21 14:58 你好[未注册用户]
@fei


我的好像不能添加Button 添加后提交就提示回发或回调这个是怎么回事啊.

  回复  引用    

非常不错,除了第一句的sql把province写成了povince.简单易懂的好例子!!!!
  回复  引用    

小山你好,,我想请教 一个问题,,我是刚学AJAX
我想实现用户打一个页面时就从数据库Online表写一条记录
,然后用户关闭页面时就从Online表中删除这条记录。

这个用AJAX能实现吗?能给出具体思路吗?
我现在连AJAX调都调不成功。

我用的是ASP.NET aJAX的。。现在想换AJAX了。

  回复  引用    

#255楼 2007-03-14 18:24 汉文[未注册用户]
请问:为什么得到的区总是每个市的第一个市的所属区啊,我选择别的市,该市下的区数据都不变呢
  回复  引用    

没有啊,会变的啊.我想问下getElementById("<%=TextBox1.ClientID%>")和document.getElementById("TextBox1")有区别吗?
  回复  引用    

#257楼 2007-04-08 12:57 Max[未注册用户]
楼主,我用了你的代码 ,我是在ASP.NET 控件里用的, 可以正常显示, 但我的问题是 怎样才能获得 选择后省 市的中文值啊, 我试了好多都不行.
麻烦您能不能给个代码 示范, 感激不尽啊, 谢谢, 急疯了....

  回复  引用    

#258楼 2007-04-14 02:57 baba[未注册用户]
我改成access不能用
  回复  引用    

#259楼 2007-04-14 03:16 baba[未注册用户]
谁能给个access的例子,谢谢

  回复  引用    

#260楼 2007-04-14 12:57 海鸟[未注册用户]
你好,我想获取城市的ID,然后添加到数据库里面去,我该怎么做,试了好多方法就只能获到省的ID,可获取不到市的ID!
  回复  引用    

#261楼 2007-04-26 11:01 鹏程[未注册用户]
小山为什么你这个例子放到2005中不好用呢?
总是提示这两个错误
错误1 找不到类型或命名空间名称“AjaxMethod”(是否缺少 using 指令或程序集引用?)

错误2 当前上下文中不存在名称“AjaxMethod”

  回复  引用    

#262楼 2007-04-26 12:13 鹏程[未注册用户]
我放在2005中只有省显示而市区不显示呢?

  回复  引用    

中看不中用
在cs中读不到数据,有啥用了

  回复  引用    

中看不中用
中看不中用
中看不中用
中看不中用

  回复  引用    

中看不中用
中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用中看不中用

  回复  引用    

#266楼 2007-05-21 11:47 wll[未注册用户]
我用ACCESS数据库做了一个反回DATASET的例子,但是总是报错,请问小山?

  回复  引用    

#267楼 2007-05-22 10:26 马可香蕉      
不错,学习了
  回复  引用  查看    

#268楼 2007-05-29 17:01 yundao[未注册用户]
sdfsd
  回复  引用    

#269楼 2007-06-14 15:06 aaaa[未注册用户]
编译器错误信息: CS0246: 找不到类型或命名空间名称“Ajax”(是否缺少 using 指令或程序集引用?)

源错误:



行 24: }
行 25:
行 26: [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
行 27: public DataSet GetCityList(int provinceid)
行 28: {


  回复  引用    

#270楼 2007-06-19 14:43 vicky[未注册用户]
我也是只要第一个dropdownlist有显示,第二第三都不反应!
  回复  引用    

#271楼 2007-06-19 14:57 vicky[未注册用户]
@瞬 我的问题也是这个,但是找你做的更改后还是只有省。没有市、区
  回复  引用    

#272楼 2007-06-21 01:35 ljh[未注册用户]
有没有2005做的例子..认真想学..教教我吧..谢谢.
  回复  引用    

#273楼 2007-07-16 19:32 s[未注册用户]
sss
  回复  引用    

#274楼 2007-07-16 19:33 s[未注册用户]
dfdf
  回复  引用    

#275楼 2007-07-25 13:41 johnbl[未注册用户]
我下载源代码,自己改了一下,联动是可以的,但是好像效率很低,选择一个省或者市以后页面就像假死一样~
  回复  引用    

#276楼 2007-07-27 21:40 斑竹[未注册用户]
为什么response.value总是空的,能返回dataset吗...
  回复  引用    

#277楼 2007-07-28 09:44 西西[未注册用户]
test_cs 是什么啊
  回复  引用    

#278楼 2007-07-29 22:21 斑竹[未注册用户]
和小山给出的例子相同,希望大家给予帮助
  回复  引用    

#279楼 2007-08-11 08:49 狂人[未注册用户]
对象名 'povince' 无效。
听上面的人说是第一句SQL语句写错了,但我找了几个ASPX和.CS文件,里面确实有错别字的.但改过以后,依旧如此.不知如何修改,请指示.

  回复  引用    

为什么发布到服务器上 出现

行:17
字符:5
错误:'AjaxMethod'未定义
代码:0
本机运行无错

  回复  引用    

#281楼 2007-09-18 11:12 329857895      
谢谢您写的东西,联动效果已经做好了,但是我向把每个省、市和县的编号从页面上取出来,然后存在数据库中的另一张表里,我应该怎么做啊,能告诉我真实感激万分!

在线等!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  回复  引用  查看    

#282楼 2007-09-21 13:36 纸鸢[未注册用户]
异常详细信息: System.ArgumentException: 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。

出现这个错误可以这样解决
把<%@ Page EnableEventValidation="true" %>
改为<%@ Page EnableEventValidation="false" %>

在获取dropdownlist的值时用
string onevalue = Request.Form["DropDownList1"];

这样做就没问题了·
但不知后面会不会再出什么错·呵呵·

  回复  引用    

#283楼 2007-09-21 17:54 专研.NET      
谢谢,我搞定了,我是通过修改

EnableEventValidation="false"

然后把值取出来放在一个隐藏的文本框中,然后再将值传到数据库中,真的很谢谢你了!


  回复  引用  查看    

#284楼 2007-09-21 17:55 专研.NET      
你写的程序很不错,有时间多发布些好的东西,我会跟你好好学习的,谢谢了!
  回复  引用  查看    

#285楼 2008-01-22 08:40 gyg[未注册用户]
为什么 在2005中无法实现 你能解决吗?
  回复  引用    

#286楼 2008-01-22 08:41 gyg[未注册用户]
为什么 在2005中无法实现 你能解决吗?我很需要你的帮忙!
  回复  引用    

为什么在Page_load()事件里有一个
if(!IsPostBack)
{
...............
.............
}
在浏览的时候,在下拉列表框里还重复加载了几次城市呀?
同一个省、市、区都出现了好次几了!

  回复  引用    

怎么转为ascx文件呀!
用户自定义控件怎么去用javascript啊!
搞不了....
高手能帮帮么?
asimplefire@126.com

  回复  引用    

#289楼 2008-03-24 16:13 194[未注册用户]
能不能弄个有注释的,初学的看的很费劲啊。
  回复  引用    

#290楼 2008-05-11 11:42 FLYabroad      
好东西
  回复  引用  查看    

#291楼 2008-09-09 19:48 uutome      
--引用--------------------------------------------------
FLYabroad: 好东西
--------------------------------------------------------
收藏

  回复  引用  查看    

#292楼 2008-09-17 10:50 ywm[未注册用户]
好!!!!!!!!!!!!!
  回复  引用    

#293楼 2008-09-20 17:52 dandan      
为什么在05中只显示省,后面的不显不的呢
  回复  引用  查看    

#294楼 2008-11-05 16:31 高义      
用updatepanel 不比你这个简单吗?
  回复  引用  查看    

这种东西还是不要查询数据库的为好
毕竟中国的城市百年不会怎么变 和alibaba 注册页面那样的三级联动不是很好吗?
我就是使用alibaba的那个

可以参考 www.zhongguotaoci.com的注册页面

  回复  引用    

#296楼 2008-12-17 09:57 ty1017[未注册用户]
今天用到了这个东东,蛮不错的。
不过遇到一些问题,现在把它提出来,大家一块研究下。
1、页面打开后,第一次必须每个下拉框都选择才能出现完整地址。
2、选择的 省市县 有时不对照,比如我先选了“北京市市辖区东城区”,想改个地址“河北省石家庄市长安区”,把省下拉框选“河北”之后直接点test按钮会输出“河北省石家庄市东城区”的地址。而石家庄没有东城区。
3、选择台湾、澳门和香港时无法输出地址。
以上是我目前发现的问题,那位大虾解决了教下我啊 !
谢谢各位了 !!

  回复  引用    

#297楼 2009-01-04 14:28 古伟[未注册用户]
谢谢 转载了 呵呵

  回复  引用    

太谢谢了!这问题困扰我好几天!!
  回复  引用    

#299楼 2009-01-08 18:24 迷茫[未注册用户]
不能用啊,服务端控件怎么可以调用客户端JS呢?
  回复  引用    

#300楼 2009-02-13 17:21 yzx99      
好东西!今天才发现有了AJAX.DLL,写起来比其它的简洁多了。

另下载的源码中GetPovinceList的select * from province写成了select * from povince,贴出的源码倒没错

  回复  引用  查看    

你好,博主
今天我写了一段程序,在本地编译运行没有问题,但是发布到IIS上出现问题。发布之后,访问可以看见页面,但是当调用后台的ajax方法时候说方法未定义,如您上面例子中的AjaxMethod说:undefined。望楼主给个建议,谢谢!可以直接回复到我的mail里,不胜感激!

  回复  引用    

评论共3页: 上一页 1 2 3 



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 257954




相关文章:

相关链接: