PDA

View Full Version : چگونگی انتقال کنترل با کلید tabدر gridview



nooshin_k
یک شنبه 13 خرداد 1386, 15:08 عصر
من یک gridview دارم که در آن 2 تا textbox قرار دادم سوالم این است چگونه میتوانم با زدن کلید tab کنترل ررا از یک textboxبه دیگری منتقل کرد

Behrouz_Rad
یک شنبه 13 خرداد 1386, 21:15 عصر
قبلا به سوالی با چنین ماهیتی پاسخ داده بودم که می تونی در لینک زیر ببینی:
http://www.barnamenevis.org/forum/showthread.php?t=26130

ضمن توجه به توضیحاتی که در تاپیک فوق گفتم، من کدها رو کمی تغییر دادم تا کاری رو که میخوای انجام بده:


<html>
<head>

<script language="javascript">
function CheckTab(el) {
if ((document.all) && (9==event.keyCode)) {
setTimeout("ProcessTab('" + el + "')",0)
}
}

function ProcessTab(id) {
document.all[id].focus()
}
</script>

</head>
<body>

<input id="myTextBox" type="text" onkeydown="CheckTab('NextTextBox')" />

<input type="button" value="Test Button"/>

<input id="NextTextBox" type="text" />

</body>
</html>

کدهای فوق رو می تونی در یک فایل با پسوند HTM ذخیره و در مرورگر اجرا کنی تا نتیجه ی کار رو ببینی.
و اما...
GridView برای هر کنترل Nested، یک ID منحصر به فرد ایجاد می کنه.
تو باید آی دی TextBox بعدی که قرار هست ایجاد بشه رو داشته باشی تا بتونی کاری رو که گفتی پیاده سازی کنی.
یک روش اینه که خروجی HTML حاصل از رندر صفحه رو مشاهد کنید و ببینید که ID ی TextBox ها در GridView به چه شکل نامگذاری شده (که تغییر نام آنها معمولا تنها در یک کاراکتر عددی خلاصه میشه) و بر همین اساس در روال RowDataBound کنترل GridView، ارجائی به TextBox جاری پیدا کرده و نام TextBox بعدی را به جای عبارت NextTextButton قرار بدید. با استفاده از خاصیت ClientID می تونی نام TextBox رو در خروجی HTML به دست بیاری اما برای ذکر نام اون در روال CheckTab، باید با استفاده از الگوی رفتاری که GridView برای پردازش کنترل های درون خود در نظر گرفته، نام TextBox بعدی رو پیدا کنی.

البته با توجه به پست های شما میشه حدس زد که چیز زیادی از توضیحات فوق متوجه نمیشید اما امیدوارم که دوستان دیگر بتونن در درک مفاهیم فوق به شما کمک کنند.

موفق باشید.:لبخندساده:

nooshin_k
چهارشنبه 16 خرداد 1386, 09:11 صبح
مرسی آقای راد مشکلم حل شد اما بر خلاف حدس شما تمام صحبتها تون را متوجه شدم