تغییر dropdownlist در زمان اجرا

perfume117

New Member
سلام من یک صفحه وب دارم که در آن مثلاً دو dropdownlist وجود دارد که در زمان بارگذاری صفحه اطلاعات از database در آن بارگذاری می شود. این دو فیلد به هم وابسته هستند به گونه ای که اگر یکی تغییر کند مثلاً selectedindex آن تغییر کند دیگری نیز باید اطلاعات وابسته به آن را نشان دهد. لطفاً یک راه حل خوب ارائه کنید که نیاز به زمان کمی باشد.
HTML:
]
 [intypeAdapter.SelectCommand.CommandText = "select * from insurancetypes";
			if( sqlConnection1.State != ConnectionState.Open )
				sqlConnection1.Open();
			intypeAdapter.SelectCommand.ExecuteNonQuery();
			intypeAdapter.Fill( dataSet11.insurancetypes);
			DataTable dt = dataSet11.Tables["insurancetypes"];
			sqlConnection1.Close();
			if( dt.Rows.Count > 0 )
			{
				for( int i = 0 ; i < dt.Rows.Count ; i++ )
				{
					codeincombo.Items.Add(((int)dt.Rows[i]["icode"]).ToString());
					typeincombo.Items.Add(((string)dt.Rows[i]["insurance"]).ToString());
				}
				codeincombo.SelectedIndex = 0;
				typeincombo.SelectedIndex = 0;

			}
 

perfume117

New Member
با onchange جواب نمی ده

روی onchange کار کردم اما چون serverside باید اطلاعات رو از سرور بره بخونه (؟) البته کدشو نوشتم کار نکرد. یعنی اومدم selectedindex را با هم تنظیم کردم. دوست عزیز اینجایی که نوشتی forbidden است و اصلاً باز نمی شه !!! یه نفر کمک کنه خیلی فوریه
 
آخرین ویرایش:

mazoolagh

Active Member
شما بايد با هر بار تغيير كمبو اول صفحه رو با مقدار جديد ايندكس اين كمبو به خودش پست كنين و با استفاده از اين ايندكس يك كوئري اجرا كنين و با نتايجش كمبو دوم رو بسازين و صفحه رو دوباره نمايش بدين.

معمولا" از ايجكس براي پست كردن مقدار جديد استفاده ميشه.
 

mazoolagh

Active Member
شما cascading dropdownlist رو گوگل كن - بهترين نمونه كدها رو پيدا ميكني
 

m1pfard

Member
اینجایی که نوشتی forbidden است و اصلاً باز نمی شه !!!
نشون میده که تا حالا از آنتی ف.ی.ل.ت.ر استفاده نکردی؟! آفرین چه پسر! خوبی.
در مورد کد:

این صفحه رو با نام cities.asp ذخیره کن:
[LTR]
کد:
<html>
<head>
<title>A SAMPLE PAGE TO SHOW HOW TO RETRIEVE DATA FROM CASCADING COMBOS LOADED FROM THE DATABASE</title>

<%
IF REQUEST.FORM("PB")="POSTED" THEN 
	POSTBACK = TRUE
ELSE
	POSTBACK = FALSE
END IF

SET CONN = SERVER.CREATEOBJECT("ADODB.CONNECTION") 
SET   RS = SERVER.CREATEOBJECT("ADODB.RECORDSET") 
CONNSTR  = "DRIVER=MICROSOFT ACCESS DRIVER (*.MDB);DBQ=" & SERVER.MAPPATH("/FPDB/US_CITIES.MDB") 
CONN.OPEN CONNSTR
%>

<script language="vbscript">
<%IF NOT POSTBACK THEN%>
	SUB WINDOW_ONLOAD
	X = WINDOW.SETTIMEOUT ("WINDOW.FORM1.SUBMIT",5000)
	END SUB
<%ELSE%>
	SUB CITY_ONCHANGE
	NDX = WINDOW.FORM1.CITY.SELECTEDINDEX 
	LL = WINDOW.FORM1.CITY(NDX).VALUE
	N = INSTR(1,LL,"|")
	L = LEN(LL)
	WINDOW.LONGITUDE.INNERTEXT = LEFT(LL,N-1)
	WINDOW.LATITUDE.INNERTEXT = RIGHT(LL,L-N)
	END SUB
<%END IF%>
</script>
</head>

<body>
<div align="center">
<h2>US CITIES GEOGRAPHICAL COORDINATES DATABASE</h2>
<form method="POST" action="cities.asp" id="FORM1" target="_self">
<%

IF NOT POSTBACK THEN
	QUERYSTR = "SELECT COUNT(STATES.STATE) FROM STATES"
	RS.OPEN QUERYSTR , CONN
	STATES_COUNT = RS.FIELDS(0)
	RS.CLOSE

   	QUERYSTR = "SELECT COUNT(CITY), MIN(LONGITUDE), MAX(LONGITUDE), MIN(LATITUDE), MAX(LATITUDE) FROM CITIES"
	RS.OPEN QUERYSTR , CONN
	CITIES_COUNT = RS.FIELDS(0)
	MN_G = RS.FIELDS(1)
	MX_G = RS.FIELDS(2)
	MN_T = RS.FIELDS(3)
	MX_T = RS.FIELDS(4)
	RS.CLOSE

	QUERYSTR = "SELECT  CITY, STATE FROM CITIES WHERE LONGITUDE=" & MN_G
	RS.OPEN QUERYSTR , CONN
	MIN_LONG = MN_G & " (" & RS.FIELDS(0) & ", " & RS.FIELDS(1) & ")"
	RS.CLOSE

	QUERYSTR = "SELECT  CITY, STATE FROM CITIES WHERE LONGITUDE=" & MX_G
	RS.OPEN QUERYSTR , CONN
	MAX_LONG = MX_G & " (" & RS.FIELDS(0) & ", " & RS.FIELDS(1) & ")"
	RS.CLOSE

	QUERYSTR = "SELECT  CITY, STATE FROM CITIES WHERE LATITUDE=" & MN_T
	RS.OPEN QUERYSTR , CONN
	MIN_LAT = MN_T & " (" & RS.FIELDS(0) & ", " & RS.FIELDS(1) & ")"
	RS.CLOSE

	QUERYSTR = "SELECT  CITY, STATE FROM CITIES WHERE LATITUDE=" & MX_T
	RS.OPEN QUERYSTR , CONN
	MAX_LAT = MX_T & " (" & RS.FIELDS(0) & ", " & RS.FIELDS(1) & ")"
	RS.CLOSE
%>
	<h3>Total number of States = <%=STATES_COUNT%></h3>
	<h3>Total number of Cities = <%=CITIES_COUNT%></h3>
	<h3>Minimum Longitude = <%=MIN_LONG%></h3>
	<h3>Maximum Longitude = <%=MAX_LONG%></h3>
	<h3>Minimum Latitude = <%=MIN_LAT%></h3>
	<h3>Maximum Latitude = <%=MAX_LAT%></h3>
	<input type="button" value="OK" onclick="WINDOW.FORM1.SUBMIT">
<%
ELSE
%>
	<table border="0" width="90%" id="table1" cellpadding="2">
		<tr>
			<td align="center" width="34%"><b><font size="4">State</font></b></td>
			<td align="center" width="34%"><b><font size="4">City</font></b></td>
			<td align="center" width="15%"><b><font size="4">Longitude</font></b></td>
			<td align="center" width="15%"><b><font size="4">Latitude</font></b></td>
		</tr>
		<tr>
			<td align="center">
				<select name="STATE" style="width:95%" onchange="WINDOW.FORM1.SUBMIT">
<%
	STATE = Request.Form("STATE")
	QUERYSTR = "SELECT STATE,ABBREVIATION FROM STATES ORDER BY STATE"
	RS.OPEN QUERYSTR , CONN
	DO WHILE NOT RS.EOF
		IF STATE = RS.FIELDS("ABBREVIATION") THEN
			SLC = " SELECTED"
		ELSE
			SLC=""
		END IF
%>
					<option value=<%=RS.FIELDS("ABBREVIATION")%>  <%=SLC%>><%=RS.FIELDS("STATE")%></option>
<%	
		RS.MOVENEXT
	LOOP
	RS.CLOSE
%>
				</select>
			</td>
			<td align="center">
				<select name="CITY" style="width:95%">
					<option value="--" selected>SELECT CITY</option>
<%
	QUERYSTR = "SELECT CITY,LONGITUDE,LATITUDE FROM CITIES WHERE STATE='" & STATE & "' ORDER BY CITY"
	RS.OPEN QUERYSTR , CONN
	DO WHILE NOT RS.EOF
%>
					<option value=<%=RS.FIELDS("LONGITUDE") & "|" & RS.FIELDS("LATITUDE") %>><%=RS.FIELDS("CITY")%></option>
<%	
		RS.MOVENEXT
	LOOP
	RS.CLOSE
%>
				</select>
			</td>
			<td id="LONGITUDE" align="center" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" bordercolor="#000000">	</td>
			<td id="LATITUDE" align="center" style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" bordercolor="#000000">	</td>
		</tr>
	</table>
<%
END IF
%>

<%
SET RS = NOTHING
CONN.CLOSE
SET CONN = NOTHING
%>
	<input type="hidden" name="PB" value="POSTED">
</form>
</div>
</body>
</html>
[/LTR]

فایل دیتابیس :
http://m.1asphost.com/mazoolagh/downloads/us_cities.mdb
همین.


منبع اصلی در سایت persiantools نوشته شده توسط mazoolagh عزیز:
صفحه نمونه - لطفا با IE ببينيد چون كد سمت كلاينت اين صفحه Cross Browser Compatible نيست!
http://m.1asphost.com/mazoolagh/cities.asp

سورس صفحه
http://m.1asphost.com/mazoolagh/cities_source.htm

ديتابيس
http://m.1asphost.com/mazoolagh/downloads/us_cities.mdb
__________________
 

جدیدترین ارسال ها

بالا