نمایش نتایج 1 تا 14 از 14

نام تاپیک: تغییر Focus بدون Refresh

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    172

    تغییر Focus بدون Refresh

    چگونه میتوان بدون اینکه صفحه Refresh شود، مثلا با کلیک بر روی یک لینک، فوکوس را به کنترل دیگری مثل یک TextBox داد

  2. #2
    میتونی به هر کنترل یک tabindex بدی و بعد فوکوس بعدی رو با این روش مشخص کنی

    فرض کنید 3 تا تکست باکس دارید و میخواهید وقتی کاربر اولی رو پر کرد و tab رو زد به جای اینکه به تکست باکس دومی بره تکست باکس سومی فعال بشه . برای این کار Tabindex این 3 تکست باکس را به ترتیب 1 و 3 و 2 بدهید . بدین ترتیب پس از پر کردن تکست باکس اول و با زدن دکمه تب فوکوس به کنترل سوم داده میشود نه دوم !

    برای اینکه پس از کلیک شدن روی یک دکمه فوکوس به کنترل دیگری داده شود در رویداد کلیک این کد را بنویسید :

    (Page.SetFocus(TextBox1
    آخرین ویرایش به وسیله rtech : شنبه 28 بهمن 1385 در 13:22 عصر دلیل: اضافه کردن یک مثال

  3. #3
    کاربر دائمی آواتار یاسر مددیان
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    سرزمین پارس
    پست
    385
    با جاوااسکریپت باید این کار رو انجام بدی.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    172
    جناب Rtech متاسفانه روش شما جواب نداد. اگر با جاوااسکریپت باید انجام بشه ممنون میشم کد نمونه ای معرفی کنید

  5. #5
    ابتدا یک نکته را متذکر میشوم که برای این کار نباید از کنترل ها asp.net استفاده کنید که تحت سرور هستند شما باید یک Input Button را در صفحه قرار دهید و Onclick آن را برابر setTextBoxFocus قرار دهید سپس اسکریپت مورد نظر را به صفحه خود اضافه کنید که کد کامل این برنامه را در ضمیمه این تاپیک میتونید دانلود کنید .
    فایل های ضمیمه فایل های ضمیمه

  6. #6
    <asp:ImageButton ID="btnSave" runat="server"  OnClientClick="javascript:document.getElementById(  'TextBox1').focus();return false;" />

    اگه MasterPage دارین و اسم Content Place Holder رو تغییر ندادیدن به جای TextBox1 این رو بذارین: ctl00_ContentPlaceHolder1_TextBox1
    آخرین ویرایش به وسیله صابر : یک شنبه 29 بهمن 1385 در 08:34 صبح دلیل: حذف SkinID="SaveButton"

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    172
    با تشکر از همه ، متاسفانه من باید از کنترل ASP استفاده کنم چون قبل از تغییر فوکوس کلی کار قراره انجام بده و بعدش فوکوس رو تغییر بده. تازه اینم بگم که اون کنترلی که قراره کار تغییر فوکوس رو انجام بده خودش توی یک DataList است. که از خاصیت CommandName و CommentArgument اون استفاده شده و نمیتوانم OnClientClick رو هم مورد استفاده قرار دهم حتی روال OnClick رو (عجب آشی)
    خیلی ساده قضیه اینه :
    من یک DataList دارم و در اون یک LinkButton و چند کنترل بایند شده دیگر.
    بعد از DataList یک TextBox دارم.
    قصدم این است که اگر کاربر بر روی هررکورد موجود در دیتالیست بر روی LinkButton ذکر شده کلیک کرد بعد از انجام دستوراتی فوکوس در اختیار TextBox که بعد از دیتالیست است قرار گیرد.
    برای انجام کارهاى دلخواه از خاصیت CommandName و CommentArgument آن LinkButton استفاده کرده ام، حالا چگونه بعد از اجرا شدن دستوراتی که داده ام فوکوس را به تکست باکسی که در پایین DataList است انتقال دهم بدون Refresh صفحه.

  8. #8
    نقل قول نوشته شده توسط bardia goharbin مشاهده تاپیک
    قصدم این است که اگر کاربر بر روی هررکورد موجود در دیتالیست بر روی LinkButton ذکر شده کلیک کرد بعد از انجام دستوراتی فوکوس در اختیار TextBox که بعد از دیتالیست است قرار گیرد.
    گفتید که "بعد از انجام دستوراتی "، خب اون دستورات Server Side هست دیگه؟
    بعد از اون کارها، در آخرین خط دستوراتتون، از کدی که دوستمون گفت استفاده کنید: (Page.SetFocus(TextBox1

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    172
    در حالت نرمال دستور شما درست است ولی اولا صفحه Refresh میشود و ثانیا در موردی که من قصد استفاده دارم کاربرد نداره.
    چون Datalist من درون یک Ajax:UpdatePanel است و متاسفانه این دستور جواب نمیده. تست کردم. یک کمی پیچیده شده متاسفانه

  10. #10
    هر دم از این باغ بری میرسد! پس updatepanel هم دارین!
    میتونید یک وب سایت تستی که با access کار کنه بسازید و این فرم و توش راه بندازین و بفرستین؟

  11. #11
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    172
    نمونه رو ارسال کردم تا شما و دوستان یه نگاهی بندازید بهش.
    فایل های ضمیمه فایل های ضمیمه

  12. #12
                case "Reply":
    {
    System.Threading.Thread.Sleep(1000);
    LblTxt.Text = "لطفا مطلب خود را وارد کنید";

    string script = "alert(10);document.getElementById('" + TxtComment.ClientID + "').focus();"
    + " WebForm_AutoFocus('" + TxtComment.ClientID + "');";
    ScriptManager.RegisterStartupScript(this,this.GetT ype(), "script1", script, true);
    }
    break;

    جالبه که وقتی اون alert رو برمیدارم کار نمیکنه! فکر میکنم به این خاطره که یه وقفه به وجود میاره و احتمالاً اگه با دستور setTimeOut این وقفه رو ایجاد کنید. alert رو میتونید بردارید.

  13. #13
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    172
    متاسفانه کدی که دادید کاری انجام نمیده !!!!!! به شما جواب داد با این کد؟

  14. #14
    ببخشید یادم رفته بود بگم که توی رویداد Load مربوط به UpdatePanel کد Page.SetFocus(TxtComment) رو بنویسید.

    protected void UpdateProgress1_Load(object sender, EventArgs e)
    {
    Page.SetFocus(TxtComment);
    }

    به هر حال پیوست هم کردم.
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. focus در asp.net لطفا کمکم کنید
    نوشته شده توسط molaei در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: یک شنبه 14 تیر 1388, 02:55 صبح
  2. تغییر رزولیشن و پایین اومدن refresh rate
    نوشته شده توسط bashir_nashi در بخش برنامه نویسی در 6 VB
    پاسخ: 16
    آخرین پست: یک شنبه 08 مهر 1386, 01:53 صبح
  3. تغییر کنترل در یک فرم change focus
    نوشته شده توسط once4ever در بخش C#‎‎
    پاسخ: 7
    آخرین پست: جمعه 07 اسفند 1383, 12:18 عصر
  4. recno,recount,و چگونگی refresh کردن table بعد از اعمال تغییر
    نوشته شده توسط reza5 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: جمعه 25 مهر 1382, 12:38 عصر
  5. Focus
    نوشته شده توسط A.Noor در بخش VB.NET
    پاسخ: 4
    آخرین پست: دوشنبه 21 مهر 1382, 10:06 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •