PDA

View Full Version : سوال: نسبت دادن یک تابع JavaScriptی به کل DropDownList های پروژه .



A.S.Roma
سه شنبه 15 آذر 1390, 16:37 عصر
با سلام ... .

من قصد دارم دو ایونت کلاینت ساید onfocus و onblur کنترل DropDownList را در کل پروژه ام با یک مقدار ثابت هندل کنم.

می دونم که یک راهش اینه که یک userDefineControl بنویسم و از اون استفاده کنم یا اینکه از بنیاد یک کنترل جدید بنویسم و به Assembly پروژم Add کنم و از اون استفاده کنم .

اما از اونجایی که متاسفانه پروژه ام صفحه زیادی داره و تقریبا" پایان پروژه است تا جایی که امکام داره نمی خوام تک تک صفحاتم رو دستکاری کنم.

در واقع یک چیزی مثل Theme می خواستم .
آیا چنین چیزی امکان داره !؟ یا بشینم پروژه رو شخم بزنم ؟:افسرده:

clover
سه شنبه 15 آذر 1390, 22:43 عصر
به این تکه کد دقت کنید، فکر میکنم راه حل مشکل شما باشه:

<script type="text/javascript">
window.onload = function () {
var selects = document.getElementsByTagName("SELECT");

for (var i = 0; i < selects.length; i++) {
selects[i].onfocus = select_onfocus;
}
};

function select_onfocus() {
alert("focus");
}
</script>

کافیه این تکه کد رو به هدر صفحاتتون اضافه کنید تا رویدادهای onfocus تمام DropDownList های اون صفحه با تابع خاصی هندل بشن.

موفق باشید

dorparasti
چهارشنبه 16 آذر 1390, 00:21 صبح
نیازی به اینکار نیست . در این شرایط می تونید از جی کوئری استفاده کنید . اول باید کل دراپ داون ها تون در یک مشخصه مشترک باشن مثل ID یا یک کلاس مشترک . بعد یک تابع رو یک بار در یک فایل js بنویسید و لینک اونرو به MasterPage اضافه کنید . نیازی به تغییر در همه صفحات نیست .

مثلاً همه ی این dropdown ها در یک div با نام MyDropDownContainer قرار می گیرن . کد جی کوئری تون مثل این میشه


$(function(){

$("#MyDropDownContainer select").focus(function(){

var val= $(this).val();
alert(val);
});
});


این تابع می گه هر وقت یک تگ Select که توی یک div به نام MyDropDownContainer قرار داره فوکوس رو گرفت . مقدارش رو Alert کن . یا هر عملیات دیگه ای .

یعنی تمام dropdown هایی که با اون شرط بخونن رویداد فوکوس اونها توسط این تایع هندل میشن .

A.S.Roma
چهارشنبه 16 آذر 1390, 12:44 عصر
گاهی اوقات آدم الکی بعضی چیزا رو سخت می کنه !
ممنون از راهنماییتون.