Bonjour,
En asp classic j'utilise parfois une combinaison de javascript et asp pour
performer des tâches du côté client. Entre autre pour des listbox dépendent.
Je cherche depuis une bonne grosse journée comment faire la même chose en
.net c#.
Bon, j'ai essayer un paquets de choses, vue un paquets d'exemple different
les uns des autres mais j'ai juste vu du "postback" la plupart du temps.. je
veux pas faire de refresh. Je veux juste remplir des tableaux javascript
avec du data de la db et me servir de ces tableaux sur le "onchange" event
du select ou du dropdownlist... peut importe. Je veux juste faire ce que je
pouvais faire auparavant en asp classic! :-)
Quelqu'un peut m'expliquer ou me donner un lien ou je peux comprendre
comment faire le même procédé mais en c# .net?
j'ai mis les bouts de code que j'utilise en classic, qui fonctionne tres
bien. ya deux listbox, au load de la page les tableaux javascript sont
rempli et le premier list box en rempli. Apres, dépendemment du choix dans
le premier, le second est rempli avec du javascript avec les données
concordante. Mais toute est du côté client. Donc pas de refresh que ce soit.
Comme vous pouvez voir, j'ai dans la premiere liste une liste de continent.
Quand un continent est choisi les pays de ce continent sont afficher dans la
seconde. Encore une fois, toute du côté client.
Merci beaucoup.
===========================================================================
le Javascript
<script language="Javascript">
<%
Set rsContinent = Server.CreateObject("ADODB.Recordset")
Set rsCountries = Server.CreateObject("ADODB.Recordset")
psql = "SELECT DISTINCT continent FROM paises"
psql = psql & " ORDER BY Continent asc;"
rsContinent.Open psql, connection
Do while not rsContinent.Eof
sqlCountries = "SELECT nombre_en,TMDomainOpt FROM paises WHERE"
sqlCountries = sqlCountries & " Continent ='" & rsContinent("Continent")
& "'"
sqlCountries = sqlCountries & " AND (TMDomainOpt = 0 OR TMDomainOpt = 2)
ORDER BY nombre_en ASC"
rsCountries.Open sqlCountries, connection
Do while not rsCountries.Eof
If arrTemp = "" Then
arrTemp = "'" & rsCountries("nombre_en") & "'"
Else
arrTemp = arrTemp & ",'" & rsCountries("nombre_en") & "'"
End If
rsCountries.MoveNext
Loop
rsCountries.Close
ContinentValue = rsContinent("continent")
%>
//Countries array
var arrTrd<%=ContinentValue%> = new Array(<%=arrTemp%>);
<%
arrTemp = ""
'Building the continent array
If Continent = "" Then
Continent = "'" & rsContinent("continent") & "'"
Else
Continent = Continent & ",'" & rsContinent("continent") & "'"
End If
rsContinent.MoveNext
Loop
rsContinent.Close
Set rsContinent = Nothing
Set rsCountriestid = Nothing
%>
//Continent array
var arrTrdContinent = new Array(<%=Continent%>);
<%
Continent = ""
Set rsContinent = Server.CreateObject("ADODB.Recordset")
Set rsCountries = Server.CreateObject("ADODB.Recordset")
psql = "SELECT DISTINCT continent FROM paises"
psql = psql & " ORDER BY Continent asc;"
rsContinent.Open psql, connection
Do while not rsContinent.Eof
sqlCountries = "SELECT nombre_en,extencion FROM paises WHERE"
sqlCountries = sqlCountries & " Continent ='" & rsContinent("Continent")
& "'"
sqlCountries = sqlCountries & " AND (TMDomainOpt = 1 OR TMDomainOpt = 2)
ORDER BY nombre_en ASC"
rsCountries.Open sqlCountries, connection
Do while not rsCountries.Eof
If arrTemp = "" Then
arrTemp = "'" & rsCountries("nombre_en") & ";" &
rsCountries("extencion") & "'"
Else
arrTemp = arrTemp & ",'" & rsCountries("nombre_en") & ";" &
rsCountries("extencion") & "'"
End If
rsCountries.MoveNext
Loop
rsCountries.Close
ContinentValue = rsContinent("continent")
%>
//Countries array
var arrDom<%=ContinentValue%> = new Array(<%=arrTemp%>);
<%
arrTemp = ""
'Building the continent array
If Continent = "" Then
Continent = "'" & rsContinent("continent") & "'"
Else
Continent = Continent & ",'" & rsContinent("continent") & "'"
End If
rsContinent.MoveNext
Loop
rsContinent.Close
Set rsContinent = Nothing
Set rsCountriestid = Nothing
%>
//Continent array
var arrDomContinent = new Array(<%=Continent%>);
function fillTrdCountries(selContinent,theform)
{
if(selContinent !="")
{
var trimString="";
var repChar="";
for ( i = 0; i < selContinent.length; i++) {
theChar=selContinent.substring ( i, i+1);
if ( theChar == " ") {
trimString += repChar
} else {
trimString+=selContinent.substring ( i, i+1);
}
}
for ( i=0; i<newOptions.length; i++ )
{
document.forms[theform].selCountries.length=i+1;
thisEntry = newOptions[i];
newOption = new Option(thisEntry);
//slip the deptid and the deptname
newOption.value = thisEntry;
newOption.text = Left(thisEntry,14);
document.forms[theform].selCountries.options[i+1] = newOption;
}
//put the focus on the first entry of the list box
document.forms[theform].selCountries.options[0].selected = true;
}
}
function fillDomCountries(selContinent,theform)
{
if(selContinent !="")
{
var trimString="";
var repChar="";
for ( i = 0; i < selContinent.length; i++) {
theChar=selContinent.substring ( i, i+1);
if ( theChar == " ") {
trimString += repChar
} else {
trimString+=selContinent.substring ( i, i+1);
}
}
for ( i=0; i<newOptions.length; i++ )
{
document.forms[theform].selCountries.length=i+1;
thisEntry = newOptions[i];
newOption = new Option(thisEntry);
//slip
thisEntry = thisEntry.split(";");
newOption.value = thisEntry[0];
newOption.text = Left(thisEntry[0]) + " " + thisEntry[1];
document.forms[theform].selCountries.options[i+1] = newOption;
}
//put the focus on the first entry of the list box
document.forms[theform].selCountries.options[0].selected = true;
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Derek Amsterdam
He bin.. pour ceux que sa peut interesser, j'ai ma solution. premierement le code javascript qui en asp classic est généré en combinant vbscript/javascript se fait sensiblement de la meme façon et j'utilise le "RegisterArrayDeclaration" pour "injecter" les tableaux javascript qui contiennent les valeurs de la deuxieme "listbox". et le reste est encore une fois sensiblement pareil.
public class default : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) {
//Inject javascript arrays that will hold the associated //countries of each continents RegisterJscriptArray("NorthAmerica","North America"); RegisterJscriptArray("SouthAmerica","South America"); RegisterJscriptArray("CentralAmerica","Central America"); RegisterJscriptArray("Europe","Europe"); RegisterJscriptArray("Asia","Asia");
donc dans le "html" generer je me retrouve avec ce que je veux, c-a-d des tableaux javascript qui contiennent des valeurs provenant de la db. i.e
<script language="javascript" type="text/javascript"> <!-- var NorthAmerica = new Array('USA;USA','CANADA;Canada'); var SouthAmerica = new Array('COLOMBIA;Colombia','VENEZUELA;Venezuela','ECUADOR;Ecuador','PERU;Peru ','CHILE;Chile','BRAZIL;Brazil','PARAGUAY;Paraguay','URUGUAY;Uruguay','ARGEN TINA;Argentina'); // --> </script>
De cette facon la, je peux jouer tant que je veux avec les listbox sans etre obliger de faire un "round trip" au server de nouveau pour faire un query pour le second listbox dependemment du choix du premier et sans avoir le "postback =true" non plus. Parce que personnellement, postback ou whatever.. sa refresh la page pareil pis c'est pas ce que je voulais.
En tout cas.. beaucoup de temps pis de recherche mais des resultats!
pour le voir en action ASP Classic -> http://www.marcaria.com ( les dropdown a gauche )
Et celui en DotNet c# -> http://www.patentarea.com/default1.aspx ou http://www.patentarea.com/default.aspx
Donc dossier fermer.. :-)
"Derek Amsterdam" a écrit dans le message de news:%23bf%
Bonjour, En asp classic j'utilise parfois une combinaison de javascript et asp
pour
performer des tâches du côté client. Entre autre pour des listbox
dépendent.
Je cherche depuis une bonne grosse journée comment faire la même chose en .net c#.
Bon, j'ai essayer un paquets de choses, vue un paquets d'exemple different les uns des autres mais j'ai juste vu du "postback" la plupart du temps..
je
veux pas faire de refresh. Je veux juste remplir des tableaux javascript avec du data de la db et me servir de ces tableaux sur le "onchange" event du select ou du dropdownlist... peut importe. Je veux juste faire ce que
je
pouvais faire auparavant en asp classic! :-)
Quelqu'un peut m'expliquer ou me donner un lien ou je peux comprendre comment faire le même procédé mais en c# .net?
j'ai mis les bouts de code que j'utilise en classic, qui fonctionne tres bien. ya deux listbox, au load de la page les tableaux javascript sont rempli et le premier list box en rempli. Apres, dépendemment du choix dans le premier, le second est rempli avec du javascript avec les données concordante. Mais toute est du côté client. Donc pas de refresh que ce
soit.
Comme vous pouvez voir, j'ai dans la premiere liste une liste de
continent.
Quand un continent est choisi les pays de ce continent sont afficher dans
la
seconde. Encore une fois, toute du côté client.
Merci beaucoup.
========================================================================== > le Javascript
<script language="Javascript"> <% Set rsContinent = Server.CreateObject("ADODB.Recordset") Set rsCountries = Server.CreateObject("ADODB.Recordset") psql = "SELECT DISTINCT continent FROM paises" psql = psql & " ORDER BY Continent asc;" rsContinent.Open psql, connection Do while not rsContinent.Eof sqlCountries = "SELECT nombre_en,TMDomainOpt FROM paises WHERE" sqlCountries = sqlCountries & " Continent ='" &
rsContinent("Continent")
& "'" sqlCountries = sqlCountries & " AND (TMDomainOpt = 0 OR TMDomainOpt 2) ORDER BY nombre_en ASC" rsCountries.Open sqlCountries, connection Do while not rsCountries.Eof If arrTemp = "" Then arrTemp = "'" & rsCountries("nombre_en") & "'" Else arrTemp = arrTemp & ",'" & rsCountries("nombre_en") & "'" End If rsCountries.MoveNext Loop rsCountries.Close ContinentValue = rsContinent("continent") %> //Countries array var arrTrd<%=ContinentValue%> = new Array(<%=arrTemp%>); <% arrTemp = ""
'Building the continent array If Continent = "" Then Continent = "'" & rsContinent("continent") & "'" Else Continent = Continent & ",'" & rsContinent("continent") & "'" End If rsContinent.MoveNext Loop rsContinent.Close Set rsContinent = Nothing Set rsCountriestid = Nothing
%> //Continent array var arrTrdContinent = new Array(<%=Continent%>);
<% Continent = "" Set rsContinent = Server.CreateObject("ADODB.Recordset") Set rsCountries = Server.CreateObject("ADODB.Recordset") psql = "SELECT DISTINCT continent FROM paises" psql = psql & " ORDER BY Continent asc;" rsContinent.Open psql, connection Do while not rsContinent.Eof sqlCountries = "SELECT nombre_en,extencion FROM paises WHERE" sqlCountries = sqlCountries & " Continent ='" &
rsContinent("Continent")
& "'" sqlCountries = sqlCountries & " AND (TMDomainOpt = 1 OR TMDomainOpt 2) ORDER BY nombre_en ASC" rsCountries.Open sqlCountries, connection Do while not rsCountries.Eof If arrTemp = "" Then arrTemp = "'" & rsCountries("nombre_en") & ";" & rsCountries("extencion") & "'" Else arrTemp = arrTemp & ",'" & rsCountries("nombre_en") & ";" & rsCountries("extencion") & "'" End If rsCountries.MoveNext Loop rsCountries.Close ContinentValue = rsContinent("continent") %> //Countries array var arrDom<%=ContinentValue%> = new Array(<%=arrTemp%>); <% arrTemp = ""
'Building the continent array If Continent = "" Then Continent = "'" & rsContinent("continent") & "'" Else Continent = Continent & ",'" & rsContinent("continent") & "'" End If rsContinent.MoveNext Loop rsContinent.Close Set rsContinent = Nothing Set rsCountriestid = Nothing
%> //Continent array var arrDomContinent = new Array(<%=Continent%>);
function fillTrdCountries(selContinent,theform) { if(selContinent !="") {
var trimString=""; var repChar=""; for ( i = 0; i < selContinent.length; i++) { theChar=selContinent.substring ( i, i+1); if ( theChar == " ") { trimString += repChar } else { trimString+=selContinent.substring ( i, i+1); } }
for ( i=0; i<newOptions.length; i++ ) { document.forms[theform].selCountries.length=i+1; thisEntry = newOptions[i]; newOption = new Option(thisEntry);
//slip the deptid and the deptname newOption.value = thisEntry; newOption.text = Left(thisEntry,14); document.forms[theform].selCountries.options[i+1] = newOption; } //put the focus on the first entry of the list box document.forms[theform].selCountries.options[0].selected = true; }
}
function fillDomCountries(selContinent,theform) { if(selContinent !="") {
var trimString=""; var repChar=""; for ( i = 0; i < selContinent.length; i++) { theChar=selContinent.substring ( i, i+1); if ( theChar == " ") { trimString += repChar } else { trimString+=selContinent.substring ( i, i+1); } }
for ( i=0; i<newOptions.length; i++ ) { document.forms[theform].selCountries.length=i+1; thisEntry = newOptions[i]; newOption = new Option(thisEntry);
//slip thisEntry = thisEntry.split(";"); newOption.value = thisEntry[0]; newOption.text = Left(thisEntry[0]) + " " + thisEntry[1]; document.forms[theform].selCountries.options[i+1] = newOption; } //put the focus on the first entry of the list box document.forms[theform].selCountries.options[0].selected = true; }
He bin.. pour ceux que sa peut interesser, j'ai ma solution.
premierement le code javascript qui en asp classic est généré en combinant
vbscript/javascript se fait sensiblement de la meme façon et j'utilise le
"RegisterArrayDeclaration" pour "injecter" les tableaux javascript qui
contiennent les valeurs de la deuxieme "listbox". et le reste est encore une
fois sensiblement pareil.
public class default : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
//Inject javascript arrays that will hold the associated
//countries of each continents
RegisterJscriptArray("NorthAmerica","North America");
RegisterJscriptArray("SouthAmerica","South America");
RegisterJscriptArray("CentralAmerica","Central America");
RegisterJscriptArray("Europe","Europe");
RegisterJscriptArray("Asia","Asia");
donc dans le "html" generer je me retrouve avec ce que je veux, c-a-d des
tableaux javascript qui contiennent des valeurs provenant de la db.
i.e
<script language="javascript" type="text/javascript">
<!--
var NorthAmerica = new Array('USA;USA','CANADA;Canada');
var SouthAmerica = new
Array('COLOMBIA;Colombia','VENEZUELA;Venezuela','ECUADOR;Ecuador','PERU;Peru
','CHILE;Chile','BRAZIL;Brazil','PARAGUAY;Paraguay','URUGUAY;Uruguay','ARGEN
TINA;Argentina');
// -->
</script>
De cette facon la, je peux jouer tant que je veux avec les listbox sans etre
obliger de faire un "round trip" au server de nouveau pour faire un query
pour le second listbox dependemment du choix du premier et sans avoir le
"postback =true" non plus. Parce que personnellement, postback ou whatever..
sa refresh la page pareil pis c'est pas ce que je voulais.
En tout cas.. beaucoup de temps pis de recherche mais des resultats!
pour le voir en action
ASP Classic -> http://www.marcaria.com ( les dropdown a gauche )
Et celui en DotNet c# -> http://www.patentarea.com/default1.aspx ou
http://www.patentarea.com/default.aspx
Donc dossier fermer.. :-)
"Derek Amsterdam" <amsterdamd@videotron.ca> a écrit dans le message de
news:%23bf%23APO9EHA.3820@TK2MSFTNGP11.phx.gbl...
Bonjour,
En asp classic j'utilise parfois une combinaison de javascript et asp
pour
performer des tâches du côté client. Entre autre pour des listbox
dépendent.
Je cherche depuis une bonne grosse journée comment faire la même chose en
.net c#.
Bon, j'ai essayer un paquets de choses, vue un paquets d'exemple different
les uns des autres mais j'ai juste vu du "postback" la plupart du temps..
je
veux pas faire de refresh. Je veux juste remplir des tableaux javascript
avec du data de la db et me servir de ces tableaux sur le "onchange" event
du select ou du dropdownlist... peut importe. Je veux juste faire ce que
je
pouvais faire auparavant en asp classic! :-)
Quelqu'un peut m'expliquer ou me donner un lien ou je peux comprendre
comment faire le même procédé mais en c# .net?
j'ai mis les bouts de code que j'utilise en classic, qui fonctionne tres
bien. ya deux listbox, au load de la page les tableaux javascript sont
rempli et le premier list box en rempli. Apres, dépendemment du choix dans
le premier, le second est rempli avec du javascript avec les données
concordante. Mais toute est du côté client. Donc pas de refresh que ce
soit.
Comme vous pouvez voir, j'ai dans la premiere liste une liste de
continent.
Quand un continent est choisi les pays de ce continent sont afficher dans
la
seconde. Encore une fois, toute du côté client.
Merci beaucoup.
========================================================================== > le Javascript
<script language="Javascript">
<%
Set rsContinent = Server.CreateObject("ADODB.Recordset")
Set rsCountries = Server.CreateObject("ADODB.Recordset")
psql = "SELECT DISTINCT continent FROM paises"
psql = psql & " ORDER BY Continent asc;"
rsContinent.Open psql, connection
Do while not rsContinent.Eof
sqlCountries = "SELECT nombre_en,TMDomainOpt FROM paises WHERE"
sqlCountries = sqlCountries & " Continent ='" &
rsContinent("Continent")
& "'"
sqlCountries = sqlCountries & " AND (TMDomainOpt = 0 OR TMDomainOpt 2)
ORDER BY nombre_en ASC"
rsCountries.Open sqlCountries, connection
Do while not rsCountries.Eof
If arrTemp = "" Then
arrTemp = "'" & rsCountries("nombre_en") & "'"
Else
arrTemp = arrTemp & ",'" & rsCountries("nombre_en") & "'"
End If
rsCountries.MoveNext
Loop
rsCountries.Close
ContinentValue = rsContinent("continent")
%>
//Countries array
var arrTrd<%=ContinentValue%> = new Array(<%=arrTemp%>);
<%
arrTemp = ""
'Building the continent array
If Continent = "" Then
Continent = "'" & rsContinent("continent") & "'"
Else
Continent = Continent & ",'" & rsContinent("continent") & "'"
End If
rsContinent.MoveNext
Loop
rsContinent.Close
Set rsContinent = Nothing
Set rsCountriestid = Nothing
%>
//Continent array
var arrTrdContinent = new Array(<%=Continent%>);
<%
Continent = ""
Set rsContinent = Server.CreateObject("ADODB.Recordset")
Set rsCountries = Server.CreateObject("ADODB.Recordset")
psql = "SELECT DISTINCT continent FROM paises"
psql = psql & " ORDER BY Continent asc;"
rsContinent.Open psql, connection
Do while not rsContinent.Eof
sqlCountries = "SELECT nombre_en,extencion FROM paises WHERE"
sqlCountries = sqlCountries & " Continent ='" &
rsContinent("Continent")
& "'"
sqlCountries = sqlCountries & " AND (TMDomainOpt = 1 OR TMDomainOpt 2)
ORDER BY nombre_en ASC"
rsCountries.Open sqlCountries, connection
Do while not rsCountries.Eof
If arrTemp = "" Then
arrTemp = "'" & rsCountries("nombre_en") & ";" &
rsCountries("extencion") & "'"
Else
arrTemp = arrTemp & ",'" & rsCountries("nombre_en") & ";" &
rsCountries("extencion") & "'"
End If
rsCountries.MoveNext
Loop
rsCountries.Close
ContinentValue = rsContinent("continent")
%>
//Countries array
var arrDom<%=ContinentValue%> = new Array(<%=arrTemp%>);
<%
arrTemp = ""
'Building the continent array
If Continent = "" Then
Continent = "'" & rsContinent("continent") & "'"
Else
Continent = Continent & ",'" & rsContinent("continent") & "'"
End If
rsContinent.MoveNext
Loop
rsContinent.Close
Set rsContinent = Nothing
Set rsCountriestid = Nothing
%>
//Continent array
var arrDomContinent = new Array(<%=Continent%>);
function fillTrdCountries(selContinent,theform)
{
if(selContinent !="")
{
var trimString="";
var repChar="";
for ( i = 0; i < selContinent.length; i++) {
theChar=selContinent.substring ( i, i+1);
if ( theChar == " ") {
trimString += repChar
} else {
trimString+=selContinent.substring ( i, i+1);
}
}
for ( i=0; i<newOptions.length; i++ )
{
document.forms[theform].selCountries.length=i+1;
thisEntry = newOptions[i];
newOption = new Option(thisEntry);
//slip the deptid and the deptname
newOption.value = thisEntry;
newOption.text = Left(thisEntry,14);
document.forms[theform].selCountries.options[i+1] = newOption;
}
//put the focus on the first entry of the list box
document.forms[theform].selCountries.options[0].selected = true;
}
}
function fillDomCountries(selContinent,theform)
{
if(selContinent !="")
{
var trimString="";
var repChar="";
for ( i = 0; i < selContinent.length; i++) {
theChar=selContinent.substring ( i, i+1);
if ( theChar == " ") {
trimString += repChar
} else {
trimString+=selContinent.substring ( i, i+1);
}
}
for ( i=0; i<newOptions.length; i++ )
{
document.forms[theform].selCountries.length=i+1;
thisEntry = newOptions[i];
newOption = new Option(thisEntry);
//slip
thisEntry = thisEntry.split(";");
newOption.value = thisEntry[0];
newOption.text = Left(thisEntry[0]) + " " + thisEntry[1];
document.forms[theform].selCountries.options[i+1] = newOption;
}
//put the focus on the first entry of the list box
document.forms[theform].selCountries.options[0].selected = true;
}
He bin.. pour ceux que sa peut interesser, j'ai ma solution. premierement le code javascript qui en asp classic est généré en combinant vbscript/javascript se fait sensiblement de la meme façon et j'utilise le "RegisterArrayDeclaration" pour "injecter" les tableaux javascript qui contiennent les valeurs de la deuxieme "listbox". et le reste est encore une fois sensiblement pareil.
public class default : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) {
//Inject javascript arrays that will hold the associated //countries of each continents RegisterJscriptArray("NorthAmerica","North America"); RegisterJscriptArray("SouthAmerica","South America"); RegisterJscriptArray("CentralAmerica","Central America"); RegisterJscriptArray("Europe","Europe"); RegisterJscriptArray("Asia","Asia");
donc dans le "html" generer je me retrouve avec ce que je veux, c-a-d des tableaux javascript qui contiennent des valeurs provenant de la db. i.e
<script language="javascript" type="text/javascript"> <!-- var NorthAmerica = new Array('USA;USA','CANADA;Canada'); var SouthAmerica = new Array('COLOMBIA;Colombia','VENEZUELA;Venezuela','ECUADOR;Ecuador','PERU;Peru ','CHILE;Chile','BRAZIL;Brazil','PARAGUAY;Paraguay','URUGUAY;Uruguay','ARGEN TINA;Argentina'); // --> </script>
De cette facon la, je peux jouer tant que je veux avec les listbox sans etre obliger de faire un "round trip" au server de nouveau pour faire un query pour le second listbox dependemment du choix du premier et sans avoir le "postback =true" non plus. Parce que personnellement, postback ou whatever.. sa refresh la page pareil pis c'est pas ce que je voulais.
En tout cas.. beaucoup de temps pis de recherche mais des resultats!
pour le voir en action ASP Classic -> http://www.marcaria.com ( les dropdown a gauche )
Et celui en DotNet c# -> http://www.patentarea.com/default1.aspx ou http://www.patentarea.com/default.aspx
Donc dossier fermer.. :-)
"Derek Amsterdam" a écrit dans le message de news:%23bf%
Bonjour, En asp classic j'utilise parfois une combinaison de javascript et asp
pour
performer des tâches du côté client. Entre autre pour des listbox
dépendent.
Je cherche depuis une bonne grosse journée comment faire la même chose en .net c#.
Bon, j'ai essayer un paquets de choses, vue un paquets d'exemple different les uns des autres mais j'ai juste vu du "postback" la plupart du temps..
je
veux pas faire de refresh. Je veux juste remplir des tableaux javascript avec du data de la db et me servir de ces tableaux sur le "onchange" event du select ou du dropdownlist... peut importe. Je veux juste faire ce que
je
pouvais faire auparavant en asp classic! :-)
Quelqu'un peut m'expliquer ou me donner un lien ou je peux comprendre comment faire le même procédé mais en c# .net?
j'ai mis les bouts de code que j'utilise en classic, qui fonctionne tres bien. ya deux listbox, au load de la page les tableaux javascript sont rempli et le premier list box en rempli. Apres, dépendemment du choix dans le premier, le second est rempli avec du javascript avec les données concordante. Mais toute est du côté client. Donc pas de refresh que ce
soit.
Comme vous pouvez voir, j'ai dans la premiere liste une liste de
continent.
Quand un continent est choisi les pays de ce continent sont afficher dans
la
seconde. Encore une fois, toute du côté client.
Merci beaucoup.
========================================================================== > le Javascript
<script language="Javascript"> <% Set rsContinent = Server.CreateObject("ADODB.Recordset") Set rsCountries = Server.CreateObject("ADODB.Recordset") psql = "SELECT DISTINCT continent FROM paises" psql = psql & " ORDER BY Continent asc;" rsContinent.Open psql, connection Do while not rsContinent.Eof sqlCountries = "SELECT nombre_en,TMDomainOpt FROM paises WHERE" sqlCountries = sqlCountries & " Continent ='" &
rsContinent("Continent")
& "'" sqlCountries = sqlCountries & " AND (TMDomainOpt = 0 OR TMDomainOpt 2) ORDER BY nombre_en ASC" rsCountries.Open sqlCountries, connection Do while not rsCountries.Eof If arrTemp = "" Then arrTemp = "'" & rsCountries("nombre_en") & "'" Else arrTemp = arrTemp & ",'" & rsCountries("nombre_en") & "'" End If rsCountries.MoveNext Loop rsCountries.Close ContinentValue = rsContinent("continent") %> //Countries array var arrTrd<%=ContinentValue%> = new Array(<%=arrTemp%>); <% arrTemp = ""
'Building the continent array If Continent = "" Then Continent = "'" & rsContinent("continent") & "'" Else Continent = Continent & ",'" & rsContinent("continent") & "'" End If rsContinent.MoveNext Loop rsContinent.Close Set rsContinent = Nothing Set rsCountriestid = Nothing
%> //Continent array var arrTrdContinent = new Array(<%=Continent%>);
<% Continent = "" Set rsContinent = Server.CreateObject("ADODB.Recordset") Set rsCountries = Server.CreateObject("ADODB.Recordset") psql = "SELECT DISTINCT continent FROM paises" psql = psql & " ORDER BY Continent asc;" rsContinent.Open psql, connection Do while not rsContinent.Eof sqlCountries = "SELECT nombre_en,extencion FROM paises WHERE" sqlCountries = sqlCountries & " Continent ='" &
rsContinent("Continent")
& "'" sqlCountries = sqlCountries & " AND (TMDomainOpt = 1 OR TMDomainOpt 2) ORDER BY nombre_en ASC" rsCountries.Open sqlCountries, connection Do while not rsCountries.Eof If arrTemp = "" Then arrTemp = "'" & rsCountries("nombre_en") & ";" & rsCountries("extencion") & "'" Else arrTemp = arrTemp & ",'" & rsCountries("nombre_en") & ";" & rsCountries("extencion") & "'" End If rsCountries.MoveNext Loop rsCountries.Close ContinentValue = rsContinent("continent") %> //Countries array var arrDom<%=ContinentValue%> = new Array(<%=arrTemp%>); <% arrTemp = ""
'Building the continent array If Continent = "" Then Continent = "'" & rsContinent("continent") & "'" Else Continent = Continent & ",'" & rsContinent("continent") & "'" End If rsContinent.MoveNext Loop rsContinent.Close Set rsContinent = Nothing Set rsCountriestid = Nothing
%> //Continent array var arrDomContinent = new Array(<%=Continent%>);
function fillTrdCountries(selContinent,theform) { if(selContinent !="") {
var trimString=""; var repChar=""; for ( i = 0; i < selContinent.length; i++) { theChar=selContinent.substring ( i, i+1); if ( theChar == " ") { trimString += repChar } else { trimString+=selContinent.substring ( i, i+1); } }
for ( i=0; i<newOptions.length; i++ ) { document.forms[theform].selCountries.length=i+1; thisEntry = newOptions[i]; newOption = new Option(thisEntry);
//slip the deptid and the deptname newOption.value = thisEntry; newOption.text = Left(thisEntry,14); document.forms[theform].selCountries.options[i+1] = newOption; } //put the focus on the first entry of the list box document.forms[theform].selCountries.options[0].selected = true; }
}
function fillDomCountries(selContinent,theform) { if(selContinent !="") {
var trimString=""; var repChar=""; for ( i = 0; i < selContinent.length; i++) { theChar=selContinent.substring ( i, i+1); if ( theChar == " ") { trimString += repChar } else { trimString+=selContinent.substring ( i, i+1); } }
for ( i=0; i<newOptions.length; i++ ) { document.forms[theform].selCountries.length=i+1; thisEntry = newOptions[i]; newOption = new Option(thisEntry);
//slip thisEntry = thisEntry.split(";"); newOption.value = thisEntry[0]; newOption.text = Left(thisEntry[0]) + " " + thisEntry[1]; document.forms[theform].selCountries.options[i+1] = newOption; } //put the focus on the first entry of the list box document.forms[theform].selCountries.options[0].selected = true; }