نحوه ساخت combo هاي multivalue - multilevel بر اساس مقادير ديتابيس

mazoolagh

Active Member
صورت مساله: يك ديتابيس از مختصات جغرافيايي شهرهاي آمريكا داريم و ميخواهيم يك صفحه asp اولين بار كه load ميشه يك آمار خلاصه از تعداد شهر ها و ايالت ها و اينكه بيشترين و كمترين طول و عرض مربوط به كدوم شهر و ايالت هست نشون بده و بعد از چند ثانيه صفحه جستجو بياد كه شامل دو تا كمبو باشه: كمبو اول ليست ايالتها رو از ديتابيس بخونه و كمبو دوم بر اساس اينكه كدام ايالت انتخاب شده شهرها رو ليست كنه - بعد از انتخاب شهر طول و عرض نمايش داده بشه.

(واقعيتش اينه كه دنبال يك ديتابيس مناسب براي اين مثال ميگشتم يك ديتابيس csv پيدا كردم بعد تبديلش كردم به mdb و تغييراتي درش دادم كه مناسب اين مثال بشه - توصيه ميكنم download كنيد)

فكر نميكنم توضيح چنداني لازم داشته باشه - يك نگاه به اين صفحه بندازيد مطلب روشنه:
http://m.1asphost.com/mazoolagh/cities.asp

اين سورسش:
http://m.1asphost.com/mazoolagh/cities_source.htm

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

فقط چند تا نكته هست كه ياد گرفتنش ضرر نداره!

1- توي فرم يك متغير مخفي هست كه از روي مقدارش ميشه فهميد آيا صفحه اولين بار است كه load شده يا نه؟ در صفحات aspx به چنين كاري نياز نداريد
کد:
<input type="hidden" name="PB" value="POSTED">

2- دقت كنيد كه چگونه clientside script در دفعه اول و دفعات بعد load شده صفحه عوض ميشه. با view source امتحان كنيد. در اينجا فقط بار اول و دفعات بعد رو چك ميكنه ولي ميشه بر اساس مقادير فرم در هر بار ارسال فرم script متفاوتي داشت. ضمنا عناصر صفحه و serverside scipt را هم به همين شكل ميتوانيد عوض كنيد

3- همونطور كه ميدونين combo ها فقط يك value دارن ( بغير از access ) ولي ما اينجا ميخواهيم 2 مقدار (طول و عرض جغرافيايي) در اون ذخيره كنيم. در موقع ساخت هر چند مقدار كه داشته اشيد رو با يك كارآكتر خاص - اينجا | - بعنوان جدا كننده بهم متصل كنيد و براي استخراج مقادير برعكس عمل كنيد.
کد:
<option value=<%=RS.FIELDS("LONGITUDE") & "|" & RS.FIELDS("LATITUDE") %>><%=RS.FIELDS("CITY")%></option>
 
آخرین ویرایش:

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

بالا