Ceci utilise la technologie ajax, l'actualisation est certaine et elle s'effectue à une vitesse dont nous ne sommes pas conscients. La méthode de la page de sacrifice XMLHTTP, la raison pour laquelle nous ne pouvons pas voir l'actualisation est que tout le travail est effectué sur la page de sacrifice. , à l'intérieur de " Nous ne pouvons pas voir le "lancement" du monde, et l'efficacité est pire !
Adresse de téléchargement AjaxPro.dll <configuration>
<système.web>
<gestionnaires http>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpGestionnaires>
</system.web>
</configuration>
AjaxTest.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxTest.aspx.cs" Inherits="AjaxTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<head runat="serveur">
<title>Page sans titre</title>
</head>
<body>
<langage de script="javascript" type="text/javascript">
fonction zoneRésultat()
{
var zone=document.getElementById("DropDownList1");
// alerte (zone.value);
AjaxTest.GetCityList(area.value,get_city_Result_CallBack);
}
fonction get_city_Result_CallBack (réponse)
{
si (réponse.value != null)
{
document.all("DropDownList2").length=0;
var ds = réponse.valeur ;
if(ds != null && typeof(ds) == "objet" && ds.Tables != null)
{
pour(var i=0; i<ds.Tables[0].Rows.length; i++)
{
var nom=ds.Tables[0].Rows[i].name;
var id=ds.Tables[0].Rows[i].id;
document.all("DropDownList2").options.add(new Option(name,id));
}
//document.all("TextBox1").value="";
}
}
retour
}
</script>
<form id="form1" runat="serveur">
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
</asp:DropDownList>
<br />
</form>
</corps>
</html>
AjaxTest.cs
utilisant Système ;
en utilisant System.Data ;
en utilisant System.Configuration ;
en utilisant System.Collections ;
en utilisant System.Web ;
en utilisant System.Web.Security ;
en utilisant System.Web.UI ;
en utilisant System.Web.UI.WebControls ;
en utilisant System.Web.UI.WebControls.WebParts ;
en utilisant System.Web.UI.HtmlControls ;
en utilisant MeetWeb ;
classe partielle publique AjaxTest : System.Web.UI.Page
{
protected void Page_Load (expéditeur de l'objet, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxTest));
si (!Page.IsPostBack)
{
LierDonnées();
}
}
privé vide BindData()
{
DataSetds = new DataSet();
String sql = "Sélectionnez l'identifiant et le nom du test" ;
essayer
{
ds = GetDataSet(sql, "test");
this.DropDownList1.DataSource = ds.Tables[0];
this.DropDownList1.DataTextField = "nom" ;
this.DropDownList1.DataValueField = "id";
this.DropDownList1.DataBind();
this.DropDownList1.Attributes.Add("onclick", "areaResult();");
}
attraper (Exception ex)
{
Response.Write (ex.Message);
}
}
DataSet statique public GetDataSet (chaîne sql, chaîne aa)
{
MeetWeb.SqlDataBase a = new MeetWeb.SqlDataBase("server=localhost\PMSERVER;uid=sa;pwd=sa;database=test");
DataSetds = new DataSet();
ds=a.CreateSet(sql, aa);
retourner ds ;
}
[AjaxPro.AjaxMethod]
public DataSet GetCityList (int id)
{
string sql = "sélectionner le nom du test où id='" + id + "'" ;
return GetDataSet(sql,"test");
}
}