小山

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

博客园 首页 新随笔 联系 订阅 管理
  200 Posts :: 1 Stories :: 1253 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
1
0
(请您对文章做出评价)
» 下一篇:SEO|搜索引擎优化(如何让你的网站排名靠前)
posted on 2005-10-19 16:21 小山 阅读(59323) 评论(216)  编辑 收藏 网摘 所属分类: DropDownList, Ajax&Altas

Feedback

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

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

#119楼 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希望能加我

  回复  引用  查看    

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

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

  回复  引用    

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

  回复  引用  查看    

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

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

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

  回复  引用    

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

  回复  引用    

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

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

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

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

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

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

本机运行无错

  回复  引用    

'AjaxMethod'未定义
  回复  引用    

#131楼 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+"'";

  回复  引用    


未定义 我知道了.

我是问: 本机运行无错

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

  回复  引用    

#133楼 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 以便于支持动态输入查询

向小山大哥表示感谢

  回复  引用    

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

#136楼 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

  回复  引用  查看    

#137楼 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属性都没有了啊。怎样在程序里面可以得到这两个值啊。

  回复  引用    

#141楼 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 & "'"

  回复  引用    

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

access也是一样的
  回复  引用    

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

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

本机运行无错

  回复  引用    

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

  回复  引用    

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

  回复  引用    

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

  回复  引用    

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

  回复  引用    

#149楼 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();");

  回复  引用    

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

  回复  引用    

#151楼 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"]也不行


  回复  引用    

#153楼 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是初学,请小山老师帮忙.急呀!!!小山老师每篇都很经典,也希望多写一些!

  回复  引用    

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

  回复  引用    

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


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

  回复  引用    

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

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

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

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

  回复  引用    

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

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

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

  回复  引用    

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

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

  回复  引用    

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

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

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

  回复  引用    

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

  回复  引用    

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

  回复  引用    

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

  回复  引用    

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

  回复  引用    

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

  回复  引用    

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

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

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

源错误:



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


  回复  引用    

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

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

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

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

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

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

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

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

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

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

  回复  引用    

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

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

  回复  引用    

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

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

  回复  引用  查看    

#187楼 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"];

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

  回复  引用    

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

EnableEventValidation="false"

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


  回复  引用  查看    

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

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

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

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

  回复  引用    

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

  回复  引用    

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

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

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

  回复  引用  查看    

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

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

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

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

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

  回复  引用    

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

  回复  引用    

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

  回复  引用    

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

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

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

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

  回复  引用  查看    

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

  回复  引用    

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

将EnableEventValidation="false" 就OK拉

  回复  引用  查看    

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

将EnableEventValidation="false" 就OK拉

  回复  引用  查看    

#209楼 2009-07-23 12:03 奔跑男孩      
小山,我问一下啊啊!这个程序是不是要把access中的数据库导入到生气 sql server中啊?怎么不见sql server 数据库啊?能不能给个现成的sql server 数据库啊?
  回复  引用  查看    

sdfsfdsf
  回复  引用    

sdfdsfdsfdsfsf
  回复  引用    

顶,山哥
  回复  引用  查看    

#213楼 2009-09-16 14:06 AAAAA7[未注册用户]
取值得问题已经解决
思路是给drp3也加一个回调函数
把值存在隐藏域里
QQ:4934588

  回复  引用    

有用,先收下了
  回复  引用    

#215楼 2009-12-10 21:52 pl_1069      
vs2003如何用ajax
  回复  引用  查看    

#216楼 2009-12-17 12:00 wenli      
想成为有钱人,首先要有赚钱的愿望,才更容易实现。在财富的累积过程中,不要嫌钱少,先从小数目开始,总有一天能赚得更多。
  除了财富的七大秘诀外,巴比伦人的五大黄金定律也是永恒的真理,都是用非常简单的方法,指导人们学习如何驾驭金钱,学习如何通过完备的理财知识使我们致富、保值增值、钱生钱,钱赚钱。并使我们的收入像源源不断的河流,为日后的生活和家庭提供长久的保障。
。想了解NGN的朋友请加我,详情:http://wenli998.ngn.sg . 真诚结交各方朋友
 你的成功将决定于你所交往的朋友的素
质!如何快速的将您的身边凝聚一群与您一样热爱学习,追求成功的朋友?从而营造一个成功的环境? http://www.wenli998.cn/
只要有时间,只要有电脑,就可以在家创业。!运用电脑经商,高效率、低成本、无需囤货,真正0风险! 欢迎喜欢创业经商的朋友一起交流洽谈,成交海内外朋友。
www.wenli998.cn/net
各位大家好,不要每天忙着赚钱,想下自已的健康想信http;//www.wenli998.cn会帮到大家,谢谢

  回复  引用  查看    

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