புள்ளிவலை

மூளைக்குத் தீனியில்லாத போழ்து
சிறிது மனதுக்கும் ஈயப்படும்.
posts - 23, comments - 60, trackbacks - 0

டெக்ஸ்ட் ஏரியாவின் அதிகபட்ச அளவை வரையறுக்க...

சாதாரண டெக்ஸ்ட்பாக்சில் இத்தனை இத்தனை எழுத்துக்களுக்குமேல் உள்ளீடு செய்யக்கூடாது என்பதை MaxLength பண்பைக் கொண்டு சுலபமாக வரையறுத்து விடலாம். ஆனால் டெக்ஸ்ட் ஏரியாவில் இது சாத்தியமில்லை.

எனவேதான் asp:TextBox கண்ட்ரோலில் TextMode=MultiLine என்று கொடுத்துவிட்டு, MaxLength ப்ராப்பர்ட்டியில் எவ்வளவு அளவு கொடுத்தாலும் ப்ரௌசரில் பார்க்கும் பொழுது அது எடுபடுவதில்லை. எனினும் சில நேரங்களில் டெக்ஸ்ட் ஏரியாவினுள் தரப்படும் தகவல்களையும் கூட ஒரு குறிப்பிட்ட அளவுக்கு மேல் ஏற்றுக்கொள்ள முடியாதவாறு வரையறுப்பது தேவையாகிறது.

இதற்கு ASP.NET என்று இல்லாமல் இதர தொழில்நுட்பங்களிலும் பின்பற்றப்படும் ஒரு முறை, படிவத்தை (ஃபார்ம்) சப்மிட் செய்தவுடன் onsubmit ஈவெண்ட்டில் குறிப்பிட்ட டெக்ஸ்ட் ஏரியாவின் அளவைப் பரிசோதித்து, ஃபார்ம் சப்மிட் ஆவதைத் தடுப்பதுதான். இப்படி தடுத்தவுடன் பயனருக்கு ஒரு அலர்ட் பாக்ஸ் வழியாக தகவலின் அளவைக் குறைக்கச்சொல்லி அறிவிக்கலாம்.

ஆனால் நிறைய டெக்ஸ்ட் ஏரியா இருக்கும் ஒரு இணையப்படிவத்தில் இந்த வழி சற்று கடினமானது. இதற்கான தீர்வு, ஏஎஸ்பி.நெட்டில் உள்ள வேலிடேஷன் கண்ட்ரோலில் இருக்கிறது. மேம்போக்காகப் பார்த்தால், LengthValidator என்றெல்லாம் எதுவும் டூல்பாக்சில் காணப்படாது. ஆனால் இதற்கு ரெகுலர் எக்ஸ்ப்ரஷன் வேலிடேட்டர் (RegularExpressionValidator) கண்ட்ரோலைப் பயன்படுத்தலாம். வேலிடேஷன் எக்ஸ்ப்ரஷன் (ValidationExpression) பண்பில், கீழ்க்கண்டவாறு கொடுக்கவேண்டும்:

(.|\r|\n){1,500}

இதில் 1 என்பது குறைந்தபட்ச தகவல் அளவையும், 500 என்பது அதிகபட்ச தகவல் அளவையும் குறிக்கும். இந்த டெக்ஸ்ட் பாக்சின் character length 200தான் இருக்கவேண்டும் என்றால், இப்படி மாற்றிக்கொள்ளலாம்:

(.|\r|\n){1,200}

இப்பொழுது முழு உதாரணம் கீழே:

<asp:TextBox ID="txtTextbox" runat="server" Rows="4" TextMode="MultiLine" Width="150px"></asp:TextBox>

<asp:RegularExpressionValidator ID="regTextbox" runat="server" ControlToValidate="txtTextbox" Display="Dynamic" ErrorMessage="Length should not exceed 200 characters" SetFocusOnError="True" ValidationExpression="(.|\r|\n){0,200}"></asp:RegularExpressionValidator>

Print | posted on Tuesday, January 29, 2008 8:59 AM | Filed Under [ ஜாவாஸ்க்ரிப்ட் ஏஎஸ்பி.நெட் ]

Feedback

Gravatar

# re: டெக்ஸ்ட் ஏரியாவின் அதிகபட்ச அளவை வரையறுக்க...

ASP, .NET, Microsoft, Bill Gates, Steve Ballmer, Redmond, WA :)

text areaவின் attributes பட்டியலை இங்கே பார்க்கவும். rows, cols போன்றவற்றைக் கொண்டு அதன் தோற்ற அளவைக் கட்டுப்படுத்தலாம். பிறகு அதன் onblur event handlerஐக் கொண்டு javascriptஆல் validate செய்ய வேண்டியதுதான். (இது மேலே குறிப்பிட்ட மந்திர வார்த்தைகள் தெரியாதவர்களுக்கு)
1/29/2008 11:19 AM | Voice on Wings
Gravatar

# re: டெக்ஸ்ட் ஏரியாவின் அதிகபட்ச அளவை வரையறுக்க...

ரெகுலர் எக்ஸ்ப்ரஷன் வேலிடேட்டர் இருந்திருக்க வேண்டும். ரிக்வயர்ட்ஃபீல்ட் வேலிடேட்டர் என்று தவறாக எழுதிவிட்டேன். இப்பொழுது திருத்திவிட்டேன்.
Gravatar

# re: டெக்ஸ்ட் ஏரியாவின் அதிகபட்ச அளவை வரையறுக்க...

voice on wings,

ASPயறிந்து வாழ்வாரே வாழ்வார் இதரவர்
சோக்காப்பர் கோடேழுதி மாய்ந்து ;-)

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 4 and 4 and type the answer here:

Powered by: