PDA

View Full Version : محدود کردن کارکترهای وارد شده در تکس باکس



dehqhani
پنج شنبه 05 تیر 1393, 07:16 صبح
سلام

من یک تکس باکس دارم که میخوام کاری کنم که به کار اجازه نده بیشتر از 5 کارکتر فاصله (space)پشت سر هم بزنه

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

چون وقتی براش شرط پر بودن گذاشتم کاربرا اومدن برای اینکه چیزی ننویسند از space استفاده کردن

Mag-Mag
پنج شنبه 05 تیر 1393, 10:16 صبح
از تابع سمت سرور

string.IsNullOrEmpty()

استفاده کن ببین جواب می ده یا نه

dehqhani
پنج شنبه 05 تیر 1393, 14:38 عصر
این تابع چجوری کار میکنه


چجور باید براش تعریف کرد که بیشتر از 5کارکتر تکراری ثبت نکنه

amir_T_2008
پنج شنبه 05 تیر 1393, 23:02 عصر
این تابع چجوری کار میکنه


چجور باید براش تعریف کرد که بیشتر از 5کارکتر تکراری ثبت نکنه

تو properties خود textbox میتونید تو قسمت max بزنید 5 تا بیشتر از 5کاراکتر قبول نکنه
موفق باشید

dehqhani
جمعه 06 تیر 1393, 07:57 صبح
دوست عزیز این مسئله رو میدونم


من بخاطر اینکه کاربر بتونه از متن توضیحاتش رو زیاد بنویسه اومدم جنسش رو به multiline تغییر دادم

اگه single باشه مشکلی ایجاد نمیشه و در قسمت propertis میتونم با تغییر max مدیریتش کنم

ولی وقتی میخوام multiline میشه دیگه اون max کار نمیکنه

ahmad156
جمعه 06 تیر 1393, 10:03 صبح
شما میتونین از این مثال (http://www.mediacollege.com/internet/javascript/form/limit-characters.html)استفاده کنین ولی برای اطمینان بیشتر حتماً طرف سرور اندازه اون رو چک کنین

dehqhani
جمعه 06 تیر 1393, 16:28 عصر
ممنون از پاسختون

دوست عزیز تکس باکسم html نیست

کنترلی که من استفاده میکنم textbox خود asp هست نه اچ ت ام ال

اگه بخوام از html استفاده کنم

راه این که بعد بخوام اطلاعاتی که در دیتابیس ثبت کردم رو بازگردانی کنم

راهش رو بلد نیستم
میدونم چجور اطلاعات یه کنترل html رو بفرستم تو بانک ولی نمیدونم چجور اطلاعات که از بانک گرفته میشه رو نمایش بدم داخل کنترل html

برای همین از کنترل asp استفاده کردم

iceweek
جمعه 06 تیر 1393, 17:28 عصر
ببین برنامه نویسا وقتی میخوان مانع از این بشن که space طرف بزنه یه trim ساده جلو رشته میزارن و چک میکتنن خالی هست یا نه.یا از اون string.IsNullOrEmpty()
که بالا اشاره شد.گیر این هم نباش که فلان کاراکتر مثلا پنج با زده جلوشو بگیری.
تهش کاربر برات یه 12345 توی تکست باکست میزنه.
ولی اگر خیلی مشتاق این موضوعی.یه حلقه برای کاراکتر های رشته بنویس و تعداد هرکدوم را در بیار.مثلا یه دیکشنری درست کن که کلیدش کاراکتر باشه و مقدارش عددی باشه که تعداد کاراکتر را نگه داره.بعد اگر تعداد یکیش بیشتر از 5 شد بهش خطا بده.این که کاری نداره.

ahmad156
جمعه 06 تیر 1393, 17:32 عصر
دوست عزیز درواقع کنترل های ASP یک View Engin هستند که تبدیل به کنترل های HTML میشن (مثلاً Razor توی ASP.NET MVC یه View Engin جدید هست) شما همون توابع و خصوصیت هایی که برای کنترل های HTML در نظر میگیرین و به اون اضافه میکنین به کنترل های ASP هم اضافه کنین گرچه Visual Studio اون رو نشناسه.یه خرده در موردش جستجو کنین متوجه میشین

amir_T_2008
شنبه 07 تیر 1393, 01:42 صبح
دوست عزیز این مسئله رو میدونم


من بخاطر اینکه کاربر بتونه از متن توضیحاتش رو زیاد بنویسه اومدم جنسش رو به multiline تغییر دادم

اگه single باشه مشکلی ایجاد نمیشه و در قسمت propertis میتونم با تغییر max مدیریتش کنم

ولی وقتی میخوام multiline میشه دیگه اون max کار نمیکنه

شما نگفتید multiline هستش و من برای multiline از RegularExpressionValidator استفاده میکنم که کاربر فقط بتونه به اندازه ای که من بهش اجازه میدم استفاده کنه کدش اینه :

^[\s\S]{1,5}$

موفق باشید

dehqhani
شنبه 07 تیر 1393, 10:28 صبح
کسی جواب کامل تری نداره

dehqhani
دوشنبه 16 تیر 1393, 17:37 عصر
جوابش رو پیدا کردم البته به کمک iceweek (http://barnamenevis.org/member.php?252302-iceweek)


جواب :


string stringtrim = txt_Discription.Text;
stringtrim = stringtrim.Trim();
int stringLength = stringtrim.Length;
if (stringLength <= 20)
{
ErrorPanel.Visible = true;
lb_error.Text = "متن گزارش شما کمتر از 20 کارکتر می باشد "+"(کارکتر (Space) حساب نمیشود)";
return;
}

با این روش تمام کارکترهای خالی یا فاصله حساب نمیشود و کاربر نمیتواند کارکتر خالی در بانک ثبت کند