回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。我试了网上的所有方法,把enableEventValidation该成false后,虽然不出这个错误,但是在这个用Ajax实现二级级联中却得不到第二级的item的值!!!<script type="text/javascript" language="javascript">
var XMLHttpObj;//全局变量,保存对象
function load(){
sendRequest(window.document.getElementById("<%=hospital.ClientID %>").value);
}
function intiXMLHttpObj(){//返回XMLHttpRequest对象
if(ActiveXObject)
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
if(XMLHttpRequest)
return new XMLHttpRequest();
}
function sendRequest(cid){
XMLHttpObj = intiXMLHttpObj();
XMLHttpObj.open("GET","XmlStudent.aspx?cid="+cid,true);
XMLHttpObj.onreadystatechange = response;
XMLHttpObj.send();
}
function response(){
if(XMLHttpObj.readyState == 4){
if(XMLHttpObj.status == 200)
stuentChange();
else alert("运行错误!");
}
}
function stuentChange(){
var xmlDoc = XMLHttpObj.responseXML;//获取xml文档对象
var ddlStus = window.document.getElementById("<%= keshi.ClientID %>");
ddlStus.options.length = 0;
var studentNodes = xmlDoc.getElementsByTagName("Keshi");
for(var i = 0;i<studentNodes.length;i++)
{
var name = studentNodes[i].childNodes[0].data;
var id = studentNodes[i].id;
ddlStus.options.add(new Option(name,id));
}
}
</script><asp:DropDownList ID="hospital" runat="server" DataSourceID="odsClasses" DataTextField="hospitalname"
DataValueField="Id" onchange="sendRequest(this.value)">
</asp:DropDownList>
<asp:ObjectDataSource ID="odsClasses" runat="server" SelectMethod="GetAllHospital" TypeName="SHealthBLL.SHospitalBLL" OldValuesParameterFormatString="original_{0}">
</asp:ObjectDataSource> <asp:DropDownList ID="keshi" runat="server" DataTextField="name"
DataValueField="Id">
</asp:DropDownList>
<%@ Page Language="C#" ContentType="text/xml" AutoEventWireup="true" CodeFile="XmlStudent.aspx.cs"
Inherits="XmlStudent" %><asp:repeater id="rptStudents" runat="server" datasourceid="odsStudents">
<HeaderTemplate>
<Keshi>
</HeaderTemplate>
<ItemTemplate>
<Keshi id = "<%#Eval("Id") %>"><%# Eval("name") %></Keshi>
</ItemTemplate>
<FooterTemplate>
</Keshi>
</FooterTemplate>
</asp:repeater>
<asp:objectdatasource id="odsStudents" runat="server" selectmethod="GetKeshiByHospital"
typename="SHealthBLL.SHospitalBLL">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="1" Name="id" QueryStringField="cid" Type="Int32" />
</SelectParameters>
</asp:objectdatasource>
var XMLHttpObj;//全局变量,保存对象
function load(){
sendRequest(window.document.getElementById("<%=hospital.ClientID %>").value);
}
function intiXMLHttpObj(){//返回XMLHttpRequest对象
if(ActiveXObject)
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
if(XMLHttpRequest)
return new XMLHttpRequest();
}
function sendRequest(cid){
XMLHttpObj = intiXMLHttpObj();
XMLHttpObj.open("GET","XmlStudent.aspx?cid="+cid,true);
XMLHttpObj.onreadystatechange = response;
XMLHttpObj.send();
}
function response(){
if(XMLHttpObj.readyState == 4){
if(XMLHttpObj.status == 200)
stuentChange();
else alert("运行错误!");
}
}
function stuentChange(){
var xmlDoc = XMLHttpObj.responseXML;//获取xml文档对象
var ddlStus = window.document.getElementById("<%= keshi.ClientID %>");
ddlStus.options.length = 0;
var studentNodes = xmlDoc.getElementsByTagName("Keshi");
for(var i = 0;i<studentNodes.length;i++)
{
var name = studentNodes[i].childNodes[0].data;
var id = studentNodes[i].id;
ddlStus.options.add(new Option(name,id));
}
}
</script><asp:DropDownList ID="hospital" runat="server" DataSourceID="odsClasses" DataTextField="hospitalname"
DataValueField="Id" onchange="sendRequest(this.value)">
</asp:DropDownList>
<asp:ObjectDataSource ID="odsClasses" runat="server" SelectMethod="GetAllHospital" TypeName="SHealthBLL.SHospitalBLL" OldValuesParameterFormatString="original_{0}">
</asp:ObjectDataSource> <asp:DropDownList ID="keshi" runat="server" DataTextField="name"
DataValueField="Id">
</asp:DropDownList>
<%@ Page Language="C#" ContentType="text/xml" AutoEventWireup="true" CodeFile="XmlStudent.aspx.cs"
Inherits="XmlStudent" %><asp:repeater id="rptStudents" runat="server" datasourceid="odsStudents">
<HeaderTemplate>
<Keshi>
</HeaderTemplate>
<ItemTemplate>
<Keshi id = "<%#Eval("Id") %>"><%# Eval("name") %></Keshi>
</ItemTemplate>
<FooterTemplate>
</Keshi>
</FooterTemplate>
</asp:repeater>
<asp:objectdatasource id="odsStudents" runat="server" selectmethod="GetKeshiByHospital"
typename="SHealthBLL.SHospitalBLL">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="1" Name="id" QueryStringField="cid" Type="Int32" />
</SelectParameters>
</asp:objectdatasource>
你up个啥!!!我发的帖子!!!你还up!!!!!
急!!!!!!!!!!!!!!
cid值是否正确
你需要的第二个下拉框的 value
http://topic.csdn.net/u/20091221/22/d732ad6c-0754-4cfc-bd78-e9d9c42bedbb.html