PDA

View Full Version : سوال: نمایش textbox به این صورت 1-152256-092



karim orooji
یک شنبه 01 شهریور 1388, 00:23 صبح
سلام دوستان
چطوری میشه در textbox :
1. کد ملی وارد میکنیم به صورت اتومات به این صورت وارد شود : 1-125423-094
2. فقط در textbox عدد نوشته شود و حروف تایپ نشود
ممنون میشم با زبان vb.app باشه

farnooshhp
یک شنبه 01 شهریور 1388, 11:00 صبح
1) کنترل RegularExpressionValidator1 و خاصیت ValidationExpression مشکلتون رو حل میکنه و میتونید با یاد گرفتن formatstring فرمت مورد نظر خودتون رو بهش بدید
2)کاری که خودم کردم اینه:
در سورس صفحه یک تابع جاوا بنویسید


<script type="text/javascript">
function numerics()
{
if(!((window.event.keyCode>=45) && (window.event.keyCode<=57) || (window.event.keyCode==8)))
{
window.event.keyCode=0;
}
}
</script>


و تگ test box تون رو به این شکل تعریف کنید


<asp:TextBox runat="server" onkeypress="numerics()">

karim orooji
یک شنبه 01 شهریور 1388, 15:56 عصر
یک نفر میشه در مورد این کدها بیشتر توضیح بده
ممنون میشم

farnooshhp
یک شنبه 01 شهریور 1388, 19:04 عصر
واضحه که! کداسکی بزرگتر از 45 و کوچکتر از 57 مربوط به اعداد میشه. 8 هم که مال کلید backspace هست (فکرکنم) در دستور if میگیم اگر کلیدی که فشار داده شده غیر از اینها باشه کد کلید رو صفر کنه یعنی هیچی تایپ نشه
در تگ تکست باکس هم این تابع را صدا می زنید

karim orooji
یک شنبه 01 شهریور 1388, 22:31 عصر
دوست عزیز در تگ textbox خاصیت onkeypress="numerics نداره فقط accesskey داره

karim orooji
یک شنبه 01 شهریور 1388, 22:49 عصر
دوست عزیز اینم کاری که شما گفتین انجام بدم ولی جواب نمیده
عکسشم ضمیمه کردم

farnooshhp
یک شنبه 01 شهریور 1388, 23:44 عصر
شما امتحان کردید و جواب نداد؟ یا اینکه همین که دیدید اینجا نداره ولش کردید؟؟؟؟!!!!!!
درسته onkeypress نداره اما شما دقیقا به همین شکل بنویسید ببینید جواب میده یا نه

<asp:TextBox runat="server" onkeypress="numerics()">

karim orooji
یک شنبه 01 شهریور 1388, 23:51 عصر
امتحان کردم جواب نداد دقیقا همینطور نوشتم عکسشو واسطون گذاشتم
فکر کنم مشکل سر کد جاواست

karim orooji
یک شنبه 01 شهریور 1388, 23:55 عصر
میشه یه نمونه زحمتشو بکشین ببینم مشکلم کجاست

farnooshhp
یک شنبه 01 شهریور 1388, 23:55 عصر
اوووووووووووووووووووووووو ووه منو ببخشید یادم رفت بگم
در تگ اسکریپتتون این کد رو بنویسید:


<script type="text/javascript">

var lang = 1;//1: Farsi, 0: English

//Farsi keyboard map based on ISIRI-2901
var farsikey = [
0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
0x0038, 0x0039, 0x003A, 0x0643, 0x003E, 0x003D, 0x003C, 0x061F,
0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 0x064D, 0x0625, 0x0623,
0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E ];

function FKeyDown(txtFrm)
{
var key = window.event.keyCode;
if(key == 145)
{
if(lang == 0)
{
lang = 1;
return true;
}
else
{
lang = 0;
return true;
}
}
}

function FKeyPress(txtFrm)
{
var key = window.event.keyCode;
if (key == 13)
{
window.event.keyCode = 13;
return true;
}
if (lang == 1)
{ //If Farsi
if (key == 0x0020 && window.event.shiftKey)
//Shift-space -> ZWNJ
window.event.keyCode = 0x200C;
else
window.event.keyCode = farsikey[key - 0x0020];
if (farsikey[key - 0x0020] == 92)
{
window.event.keyCode = 0x0698;
}
if (farsikey[key - 0x0020] == 8205)
{
window.event.keyCode = 0x067E;
}
}
return true;
}


function numerics()
{
if(!((window.event.keyCode>=45) && (window.event.keyCode<=57) || (window.event.keyCode==8)))
{
window.event.keyCode=0;
}
}

</script>

farnooshhp
دوشنبه 02 شهریور 1388, 00:00 صبح
یه امکان دیگه هم که داره اینه که اگر خواستید در یک تکست باکس فقط حروف فارسی وارد بشه میتونید اون رو به این صورت تعریف کنید :


<asp:TextBox ID="txtname" runat="server" dir="rtl" Font-Names="Tahoma" Font-Size="8pt"
MaxLength="50" onkeydown="FKeyDown('txtname')" onkeypress="FKeyPress('txtname')"
Width="180px"></asp:TextBox>

karim orooji
دوشنبه 02 شهریور 1388, 00:02 صبح
تایپ عددی درست شد ممنونم فقط چطور میشه مثل کدملی خط فاصله بندازم بین اعداد مثل :2-545861-094

farnooshhp
دوشنبه 02 شهریور 1388, 00:13 صبح
) کنترل RegularExpressionValidator1 و خاصیت ValidationExpression مشکلتون رو حل میکنه و میتونید با یاد گرفتن formatstring فرمت مورد نظر خودتون رو بهش بدید


این رو گفتم! اما formatstring رو من هم بلد نیستم باید بری دنبالش یاد بگیری!

sas523
دوشنبه 02 شهریور 1388, 00:15 صبح
دوست عزیز

یه راه خیلی خیلی ساده تر هست

البته اگر بتونی از ای جکس استفاده کنی!

یه کنترل داره به اسم masked edit extender

که وقتی میندازیش رویه صفحه کافیه که property مربوط بهش رو هر جور دوست داری تغییر بدی

همین!

و حتی یه خط کد هم ننویس !

sas523
دوشنبه 02 شهریور 1388, 00:18 صبح
در واقع باید این کنترل رو به همراه یک text box بر روی صفحه قرار بدی

و پراپرتی های کادر متنیت رو تغییر بدی

ای جکس فوق العاده است درین زمینه

karim orooji
دوشنبه 02 شهریور 1388, 00:27 صبح
چطوری میتونم ازش استفاده کنم میشه بیشتر راهنمایی کنی یا مثال بزنی

karim orooji
دوشنبه 02 شهریور 1388, 00:27 صبح
دوست عزیز در مورد این سوالم میتونین کمکم کنین
سوال : یه برنامه دارم كه درش چند dropdown list و list box وجود داره
حالا من با هر بار كه رشته اي رو ميخوام انتخاب كنم صفحه من رفرش ميشه
من برنامه رو طوري نوشتم كه كه زماني كه در dropdown list رشته مورد نظر خو رو انتخاب كردم بياد select index رو برار با list box قرار ميده و در نهایت در یک label نمايش ميده
از تك ifarme و postback نميخوام استفاده كنم

karim orooji
دوشنبه 02 شهریور 1388, 00:31 صبح
این mask edit در vb.net هست ولی در asp.net نیست

karim orooji
دوشنبه 02 شهریور 1388, 12:23 عصر
1 . در مورد dropdown
2 . در مورد وارد کردن عدد در textbox ونمایش بصورت کد ملی مثال :عدد وارد شده 095456641 در textbox و عدد نمایش داده شده در تکس باکس 1-152115-092

karim orooji
دوشنبه 02 شهریور 1388, 15:15 عصر
سلام دوستان با این روش میشه درست کرد ولی چطور میشه موقع تایپ یا focus از دست دادن textbox اعمال شود

Dim phoneNumber As String = TextBox2.Text
TextBox2.Text = Regex.Replace(phoneNumber, "(\d{3})(\d{6})(\d{1})", "$1-$2-$3")

alireza_s_84
چهارشنبه 04 شهریور 1388, 02:40 صبح
دوست عزیز بهترین راه استفاده از کنترهای Toolkit که یک کنترل مخصوص بنام MaskEdit Extender داره.
اگه این کنترلها رو نصب کرده باشین وقتی روی یک TextBox کلیک کنید یک گزینه به منوی تنظیمات اضافه میشه بصورت زیر:

http://omran32.parsaspace.com/1.gif

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

http://omran32.parsaspace.com/2.gif

MaskedEdit رو که انتخاب کنید و OK بزنید بر روی Texbox مورد نظرتون کلیک کنید و Properties رو انتخاب کنید یک گزینه جدید به خصوصیاتش اضافه شده که میتونید در اونجا تنظیمات ماسک رو انجام بدین:

http://omran32.parsaspace.com/3.gif


خوب جهت تنظیمات مهمتر از همه دو قسمته زیره:
ClearMaskOnLostFocus که لطف میکنید همیشه True میذارین تا وقتی که Textbox فوکوس نداشت ماسک پاک نشه.
Mask که برای اینکار شما بصورت 9-999999-999 هستش و میگه که فقط عدد میتونین وارد کنید.

http://omran32.parsaspace.com/4.gif

برای اعتبار سنجی هم که دوستان توضیح دادن
نتیجه کار بصورت زیر درمیاد

http://omran32.parsaspace.com/5.gif

خوب کار تمومه
اگه دوست داشتین کد جاوا بنویسید خبرم کنید بهتون میگم چه جوری بنویسید سخت نیست اما تا ایجکس هست چرا جاوا؟؟؟
ببخشید اگه خلاصه توضیح دادم حین انجام کار بودم که اینو دیدم دلم نیومد بیخیال رد شم. سوالی بود مشکلی راه حلی alireza_s_84@yahoo.com

karim orooji
چهارشنبه 04 شهریور 1388, 12:46 عصر
دوست عزیز اگر میتونی با جاوا یک مثال بزنی ممنون میشه ajax هم باشه اشکال نداره فقط مثل این توضیحی که دادی باشه ممنون میشم چون نه از ajax و نه از جاوا چیزی نمیدونم

karim orooji
چهارشنبه 04 شهریور 1388, 17:25 عصر
اول این کد رو گذاشتم :


<scripttype="text/javascript">
var lang = 1;//1: Farsi, 0: English

//Farsi keyboard map based on ISIRI-2901
var farsikey = [
0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
0x0038, 0x0039, 0x003A, 0x0643, 0x003E, 0x003D, 0x003C, 0x061F,
0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 0x064D, 0x0625, 0x0623,
0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E ];
function FKeyDown(txtFrm)
{
var key = window.event.keyCode;
if(key == 145)
{
if(lang == 0)
{
lang = 1;
returntrue;
}
else
{
lang = 0;
returntrue;
}
}
}
function FKeyPress(txtFrm)
{
var key = window.event.keyCode;
if (key == 13)
{
window.event.keyCode = 13;
returntrue;
}
if (lang == 1)
{ //If Farsi
if (key == 0x0020 && window.event.shiftKey)
//Shift-space -> ZWNJ
window.event.keyCode = 0x200C;
else
window.event.keyCode = farsikey[key - 0x0020];
if (farsikey[key - 0x0020] == 92)
{
window.event.keyCode = 0x0698;
}
if (farsikey[key - 0x0020] == 8205)
{
window.event.keyCode = 0x067E;
}
}
returntrue;
}


function numerics()
{
if(!((window.event.keyCode>=45) && (window.event.keyCode<=57) || (window.event.keyCode==8)))
{
window.event.keyCode=0;
}
}
</script>

بعد در تگ textbox اینو قرار میدم(منظور در عکس زیر ) گزینه هایی که خط کشیدم error میده
چیکارش کنم error حذف بشه
با این کار میخوام فقط در textbox حروف فارسی تایپ بشه( با کمک شما دوستان)

alireza_s_84
چهارشنبه 04 شهریور 1388, 22:29 عصر
بازم سلام:
لینک دانلود AjaxControlToolkit رو پایین میذارم:

http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27326#DownloadId=68 192

یک فایل Zip ابتدا اون رو توی مسیر زیر Extract کنید:
C:\Program Files\Microsoft ASP.NET 2.0 AJAX Extensions\Ajax Control Toolkit
بعد به مسیر زیر برید:
C:\Program Files\Microsoft ASP.NET 2.0 AJAX Extensions\Ajax Control Toolkit\AjaxControlToolkitSource\AjaxControlToolki t\bin\Debug

یک ddl به اسم AjaxControlToolkit.dll اونجا هست اونو توی پوشه Bin وب سایت خودتون کپی کنید
حالا توی Toolbox ویژوال استودیو یک Tab جدید ایجاد کنید به هر اسمی که دلتون خواست

http://omran32.parsaspace.com/1.JPG

http://omran32.parsaspace.com/2.JPG

http://omran32.parsaspace.com/3.JPG



توی Tab درست شده کلیک راست کنید و گزینه Choose Items رو انتخاب کنید که یک کادر باز میشه توی اون آدرس پوشه Bin رو باز کنید و dll رو انتخاب کنید

http://omran32.parsaspace.com/4.JPG

http://omran32.parsaspace.com/5.JPG


http://omran32.parsaspace.com/6.JPG

بعد OK کنید زیر همون تب تمام کنترلهای Toolkit لیست میشن

http://omran32.parsaspace.com/7.JPG

برای افزودن این کنترلها به کنترلها به کنترلهای دیگه لازم نیست اونا رو به صفحه اضافه کنید بلکه کنار هر کنترل یک علامت > هست که اجازه میده هرکدومشون رو که بخوایم به کنترلهامون اضافه کنیم (پست قبلی توضیح دادم چه جوری اینکار رو بکنیم)
مشکلی بود بازهم در خدمتم

alireza_s_84
چهارشنبه 04 شهریور 1388, 22:45 عصر
اول این کد رو گذاشتم :


<scripttype="text/javascript">
var lang = 1;//1: Farsi, 0: English

//Farsi keyboard map based on ISIRI-2901
var farsikey = [
0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
0x0038, 0x0039, 0x003A, 0x0643, 0x003E, 0x003D, 0x003C, 0x061F,
0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 0x064D, 0x0625, 0x0623,
0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E ];
function FKeyDown(txtFrm)
{
var key = window.event.keyCode;
if(key == 145)
{
if(lang == 0)
{
lang = 1;
returntrue;
}
else
{
lang = 0;
returntrue;
}
}
}
function FKeyPress(txtFrm)
{
var key = window.event.keyCode;
if (key == 13)
{
window.event.keyCode = 13;
returntrue;
}
if (lang == 1)
{ //If Farsi
if (key == 0x0020 && window.event.shiftKey)
//Shift-space -> ZWNJ
window.event.keyCode = 0x200C;
else
window.event.keyCode = farsikey[key - 0x0020];
if (farsikey[key - 0x0020] == 92)
{
window.event.keyCode = 0x0698;
}
if (farsikey[key - 0x0020] == 8205)
{
window.event.keyCode = 0x067E;
}
}
returntrue;
}


function numerics()
{
if(!((window.event.keyCode>=45) && (window.event.keyCode<=57) || (window.event.keyCode==8)))
{
window.event.keyCode=0;
}
}
</script>

بعد در تگ textbox اینو قرار میدم(منظور در عکس زیر ) گزینه هایی که خط کشیدم error میده
چیکارش کنم error حذف بشه
با این کار میخوام فقط در textbox حروف فارسی تایپ بشه( با کمک شما دوستان)


__________________________________________________ ____________________

اول بذارین چندتا ایراد بگیرم بعد:
1- این کد فقط توی اینترنت اکسپلورر جواب میده و بقیه مرورگرها NO Suport
2- return true ها رو درست بنویسید این دوتا چسبیدن به هم
3- "dir="rtl رو به اینصورت بنویسید اصولی تره ";style="direction:rtl
4- دوتا onkeypress نوشتین یکی رو حذف کنید و دوتا تابع رو اینجوری صدا بزنید



";()onkeypress="fkeypress('textbox1');numerics




فکر کنم مشکلی نباشه اگر بود error رو بذارید تا راهنمایی کنید

karim orooji
شنبه 07 شهریور 1388, 01:08 صبح
سلام دوست عزیز
من همچین مسیری در سیستمم ندارم چیکار کنم

C:\Program Files\Microsoft ASP‎.Net 2.0 AJAX Extensions\Ajax Control Toolkit

alireza_s_84
شنبه 07 شهریور 1388, 01:48 صبح
سلام دوست عزیز
من همچین مسیری در سیستمم ندارم چیکار کنم

C:\Program Files\Microsoft ASP‎‎.Net 2.0 AJAX Extensions\Ajax Control Toolkit


http://parsaspace.com/download.aspx?file=ASPAJAXExtSetup.rar&username=omran32

این فایل رو دانلود کنید . بعد از نصب این پوشه بوجود میاد بعدش کنترلهای Toolkit رو نصب کنید
موفق باشید