PDA

View Full Version : سوال: فارسی شدن خودکار تکست باکس با کدهای asp تحت C#



parniyan2
چهارشنبه 28 مرداد 1388, 00:57 صبح
ندانستن عیب نیست نپرسیدن عیب است.
موضوع تاپیک خبر می دهد از رنگ رخسار!
حالا کسی هست که سرّ درون این تاپیک رو بدونه؟

don_alen
جمعه 30 مرداد 1388, 13:44 عصر
حالا که خوب نگاه کردم اصلا اینجوری به جواب نمی رسیم

راه حل اساسی :

1 ) به وبت یه فایل KeyFarsi.js اضافه کن
2 ) کد زیرو بذار توش و ذخیره کن



// 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, // "/"
0x06F0, // "۰"
0x06F1, // "۱"
0x06F2, // "۲"
0x06F3, // "۳"
0x06F4, // "۴"
0x06F5, // "۵"
0x06F6, // "۶"
0x06F7, // "۷"
0x06F8, // "۸"
0x06F9, // "۹"
0x003A, // ":"
//0x0643, // "ك"
0x06A9, // "ک"
0x003E, // "<"
0x003D, // "="
0x003C, // ">"
0x061F, // "?"
0x066C, // "،"
0x0624, // "ؤ"
0x200C, // " "
0x0698, // "ژ"
0x0649, // "ی"
0x064D, // " "
0x0625, // " "
0x0623, // "ًٌٍإ"
0x0622, // " "
0x0651, // " "
0x0629, // "ًٌة"
0x00BB, // "«"
0x00AB, // "»"
0x0621, // "ء"
0x004E, // "N"
0x005D, // "["
0x005B, // "]"
0x0652, // " "
0x064B, // " "
0x0626, // "ئ"
0x064F, // " "
0x064E, // " "
0x0056, // "V"
0x064C, // " "
0x0058, // "X"
0x0650, // " "
0x0643, // "ك"
0x062C, // "ج"
0x005C, // "\"
0x0686, // "چ"
0x00D7, // "x"
0x0640, // "-"
0x200D, // " "
0x0634, // "ش"
0x0630, // "ذ"
0x0632, // "ز"
0x06CC, // "ی"
// 0x064A = ي
0x062B, // "ث"
0x0628, // "ب"
0x0644, // "ل"
0x0627, // "ا"
0x0647, // "ه"
0x062A, // "ت"
0x0646, // "ن"
0x0645, // "م"
//0x067E, // "پ"
0x0626, // "ئ"
0x062F, // "د"
0x062E, // "خ"
0x062D, // "ح"
0x0636, // "ض"
0x0642, // "ق"
0x0633, // "س"
0x0641, // "ف"
0x0639, // "ع"
0x0631, // "ر"
0x0635, // "ص"
0x0637, // "ط"
0x063A, // "غ"
0x0638, // "ظ"
0x007D, // "{"
0x007C, // "|"
0x007B, // "}"
0x007E // "~"
];

var lang = 1; // 1: Farsi, 0: English
function changeLang() {
if (lang == 0) {
lang = 1;
return true;
}
else {
lang = 0;
return true;
}
}

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;
}
//onkeypress="FKeyPress('');"
//onkeydown="FKeyDown('');"


3 ) برو به کد html صفحه مورد نظرت و بین تگ head کد زیرو اضافه کن


<script type="text/javascript" src="KeyFarsi.js"></script>


4 ) حالا تگ textbox مورد نظرتو پیدا کن و خط زیریو بهش اضافه کن


onkeypress="FKeyPress('');" onkeydown="FKeyDown('');"


که در نهایت می شه مثل تگ زیر



<asp:TextBox ID="TextBox1" onkeypress="FKeyPress('');" onkeydown="FKeyDown('');" runat="server"></asp:TextBox>

minamorsali
جمعه 30 مرداد 1388, 15:40 عصر
سلام
ببخشید این روش در vs 2005 جواب نمیده؟
آخه من این روشو خواستم انجام بدم، اما تکست باکس خاصیت onkeydown و onkeypress نداشت.

liliyan87
جمعه 30 مرداد 1388, 20:25 عصر
سلام
ببخشید این روش در vs 2005 جواب نمیده؟
آخه من این روشو خواستم انجام بدم، اما تکست باکس خاصیت onkeydown و onkeypress نداشت.


don_alen (http://www.barnamenevis.org/forum/member.php?u=57087) دوست عزیز خیلی به این کد شما نیاز داشتم مرسی.
من امتحان کردم جواب داد همین onkeydown و onkeypress خودت اضافه کن جواب میده.

minamorsali
شنبه 31 مرداد 1388, 00:14 صبح
don_alen (http://www.barnamenevis.org/forum/member.php?u=57087) دوست عزیز خیلی به این کد شما نیاز داشتم مرسی.
من امتحان کردم جواب داد همین onkeydown و onkeypress خودت اضافه کن جواب میده.

بله. جواب داد.
متشکرم.

minamorsali
پنج شنبه 19 شهریور 1388, 15:18 عصر
سلام
با تشکر از برنامه خوبتون
من الان داشتم سایتم رو تست می کردم، متوجه شدم که درصورتی که زبان سیستم فارسی باشه، توی تکس باکس هیچی تایپ نمیشه.
راهی برای رفع این مشکل هست؟
ممنون میشم اگه راهنماییم کنید.

liliyan87
شنبه 21 شهریور 1388, 01:04 صبح
سلام میتونی به این لینک سر بزنی مطالب خیلی مفیدی داره که احتمالا بدرت میخوره
http://barnamenevis.org/forum/showthread.php?t=175133&highlight=نمایش+textbox+این+صورت+1-152256-092

kohyar
شنبه 21 شهریور 1388, 10:35 صبح
با سلام
روشي كه دوست عزيزمون جناب don_alen (http://barnamenevis.org/forum/member.php?u=57087) فرمودند روش خوبي هستش يعني در هر صورت فارسي تايپ مي كنه يعني پيش فرض فارسي شده
ولي يك مشكل داره اونم اينه كه ديگر انگليسي رو به هيچ وجه چاپ نمي كنه و اين يك مشكل هستش شايد در جستجوي بعضي عبارات بين عبارت فارسي كلمه انگليسي هم داشته باشيم
خواهش ميكنم هر كسي بلده اين كد رو اصلاح كنه
با تشكر

m110_110
جمعه 08 آبان 1388, 16:00 عصر
سلام
چرا این تاپیک مهم ادامه پیدا نکرده
اگر کسی بتونه این مشکل را حل کند خیلی عالی می شه چون فکر می کنم مشکل خیلی ها باشه
ممنون

milad20000
دوشنبه 14 فروردین 1391, 20:05 عصر
خدااااااااااااااااااااااا ااااااااااااااااااااااااا ااااااااااااااااااااااااا ااااااااااااااااااااااااا ااااااااااااااااااااااااا ااااااااااااااااااااااااا ااااااااااااااااااااااااا اااا
بدادم بدرس

mahmood_4246
سه شنبه 15 فروردین 1391, 16:37 عصر
این یه نمونه تو movashah.ir پیدا کردم .. سورسش رو بذارید تو فایل asp.net .. از طریق attribute تو Load خاصیت های onkeydown و onkeypress برای textbox ها میتونی ست کنی