PDA

View Full Version : سوال: فوكوس در ASP.NET سمت سرور



behesht.royaha
یک شنبه 24 بهمن 1389, 18:49 عصر
با سلام و تشكر از مديران سايت.

ميخواستم كد فوكوس در asp رو بهم آموزش بديد كه وقتي درون textbox1 هستم با زدن كليد enter به textbox2 برم. با كد جاوا ميشه اما با كد c# درون asp خواستم.

خيلي گشتم ولي پيدا نكردم لطفا يكي راهنماييم كنه . با تشكر

mehdi.mousavi
یک شنبه 24 بهمن 1389, 18:58 عصر
با سلام و تشكر از مديران سايت. ميخواستم كد فوكوس در asp رو بهم آموزش بديد كه وقتي درون textbox1 هستم با زدن كليد enter به textbox2 برم. با كد جاوا ميشه اما با كد c# درون asp خواستم. خيلي گشتم ولي پيدا نكردم لطفا يكي راهنماييم كنه . با تشكر

سلام.
این درخواست عجیب برای چی هستش؟ اینکار مطلقا صحیح نیست و باعث ایجاد Round-Trip های اضافه بین Client و Server میشه.
روش صحیح، استفاده از همون JavaScript و انجام اینکار در سمت Client هستش.

موفق باشید.

پاورقی: لطفا از این پس جای ASP.NET ننویسید ASP، همینطور جای JavaScript ننویسید Java. هر کدوم از اینها معنای خودشون رو دارن و نمیشه از یکی جای دیگری استفاده کرد.

behesht.royaha
یک شنبه 24 بهمن 1389, 20:04 عصر
با سلام و تشكر از شما جناب موسوي.

من قبلا به كمك يكي از اقوام كد فوكوس سمت client رو نوشتيم ولي متاسفانه كدشو گم كرديم هر كاري هم ميكنيم نميتونيم دوباره بنويسيم.كدي كه ما نوشتيم اين بود كه درون يك if داخل رويداد text_change همون textbox فعال كد اسكي كليد ورودي رو دريافت ميكرد و اگر برابر 13 بود textbox مورد نظر رو فوكوس ميكرد كه اصلا كاري با سرور نداشت.

ميشه لطفا كدشو برام بزاريد . ممنون ميشم

awwex2007
یک شنبه 24 بهمن 1389, 20:45 عصر
textbox1.Focus();

AmirHarirbafan
یک شنبه 24 بهمن 1389, 20:56 عصر
این درخواست عجیب برای چی هستش؟ اینکار مطلقا صحیح نیست و باعث ایجاد Round-Trip های اضافه بین Client و Server میشه.
روش صحیح، استفاده از همون JavaScript و انجام اینکار در سمت Client هستش.


من با ایشون کاملا موافق هستم، هر تکنولوژی رو بهر کاری ساختن. و راه حل شما استفاده از JavaScript میباشد.
در کد پایین یک مثال زدم، امیدوارم کمکتون کنه :(تست شده، توی همه ی مرورگرها درست جواب میده)



<body onload="document.getElementById('txt1').focus();">
<form method="post" action="Default.aspx">
Name: <input id="txt1" type="text"
onkeypress="if(event.keyCode==13){document.getElementById('txt 2').focus(); return false;} " />
<br />
Address: <input id="txt2" type="text"
onkeypress="if(event.keyCode==13){ document.getElementById('txt3').focus(); return false;}" />
<br />
City: <input id="txt3" type="text"
onkeypress="if(event.keyCode==13){ document.getElementById('btnOk').focus(); return false;}" />
<br />
<input id="btnOk" type="submit" value="Ok" />
<input type="reset" value="Cancel" />
</form>
</body>

behesht.royaha
یک شنبه 24 بهمن 1389, 21:32 عصر
textbox1.Focus();


دوست گرامي با اين كد جواب نميده من امتحان كردم. ميشه كد كامل رو بزاريد كه صحت كليد ورودي مثلا اينتر رو بررسي كنه بعد فوكوس كنه
مثلا if keyascii=13 then textbox2.focus. من قبلا در ويژوال بيسيك اين كد رو مينوشم حالا C# ‌رو در asp.net ميخوام.

behesht.royaha
یک شنبه 24 بهمن 1389, 21:34 عصر
من با ایشون کاملا موافق هستم، هر تکنولوژی رو بهر کاری ساختن. و راه حل شما استفاده از JavaScript میباشد.
در کد پایین یک مثال زدم، امیدوارم کمکتون کنه :(تست شده، توی همه ی مرورگرها درست جواب میده)



<body onload="document.getElementById('txt1').focus();">
<form method="post" action="Default.aspx">
Name: <input id="txt1" type="text"
onkeypress="if(event.keyCode==13){document.getElementById('txt 2').focus(); return false;} " />
<br />
Address: <input id="txt2" type="text"
onkeypress="if(event.keyCode==13){ document.getElementById('txt3').focus(); return false;}" />
<br />
City: <input id="txt3" type="text"
onkeypress="if(event.keyCode==13){ document.getElementById('btnOk').focus(); return false;}" />
<br />
<input id="btnOk" type="submit" value="Ok" />
<input type="reset" value="Cancel" />
</form>
</body>


دوست گرامي اگه ممكنه كد C# رو برام بزار.برخلاف نظر دوستان هيچ مشكلي ايجاد نميكنه چون قبلا من كار كردم ولي متاسفانه كدشو گم كردم. چند تا سايت هم بود كه اين امكان رو برام textbox هاشون گذاشته بودن .
با تشكر

AmirHarirbafan
دوشنبه 25 بهمن 1389, 03:32 صبح
من زیاد با web formها کار نکردم. بیشتر ASP.NET MVC کار کردم. اما تا اونجایی که من میدونم کنترلهای وب فرم، متاسفانه (البته بهتره بگیم خوشبختانه) رویدادی به نام keyDown یا KeyPress نداره. پس فکر نکنم بشه از اون طریق راه به جایی برد
شما هم بهتره همیشه از راه حل های استاندارد استفاده کنید

behesht.royaha
سه شنبه 26 بهمن 1389, 11:16 صبح
ممنون دوست عزيز . ميتونيد كد نحوه به دست آوردن كد اسكي كليد زده شده روي كيبورد رو برام بزاريد يعني داخل يك تكست باكس هر كليد روي فشار ميدوي رو كيبورد كدش داخل تكست باكس بيوفته . با زبان C# ممنون ميشم

mehdi.mousavi
پنج شنبه 28 بهمن 1389, 10:54 صبح
ممنون دوست عزيز . ميتونيد كد نحوه به دست آوردن كد اسكي كليد زده شده روي كيبورد رو برام بزاريد يعني داخل يك تكست باكس هر كليد روي فشار ميدوي رو كيبورد كدش داخل تكست باكس بيوفته . با زبان C# ممنون ميشم

سلام.
لطفا به این تاپیک (http://barnamenevis.org/showthread.php?274934-%D8%A8%D9%87-%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-%D9%83%D8%AF-ascii-%DA%A9%D9%84%DB%8C%D8%AF-%D8%B2%D8%AF%D9%87-%D8%B4%D8%AF%D9%87) رجوع کنید. اگر سوالی در این مورد در همون تاپیک قبلی پیگیری کنید.
تاپیک فعلی قفل شد و ظرف چند ساعت آینده نیز حذف خواهد شد.

موفق باشید.