مقدمه و معرفی کنترل TextBox - کادر متن
مقدمه :
از کنترل TextBox در ASP.Net برای نمایش یک کادر متن به کاربر و دریافت اطلاعات ورودی از وی استفاده می شود . کاربر می تواند اطلاعات مورد نظر خود از جمله نام کاربری ، کلمه عبور ، آدرس Email و یا سایر اطلاعات را درون کادر متن های مربوطه وارد نماید . پس از وارد نمودن کلیه اطلاعات لازم ، کاربر می تواند صفحه را به سرور ارسال نماید . به طور مثال برای این منظور برای روی یک دکمه فرمان Button که صفحه را Submit می کند ، کلیک نماید .
شکل کلی تعریف و نمایش کنترل TextBox در صفحه های ASP.Net به صورت زیر است :
< asp:TextBox ID="TextBox1" runat="server" > < / asp:TextBox >
یا
< asp:TextBox ID="TextBox1" runat="server" />
نحوه قرار دادن یک کنترل TextBox بر روی صفحه ASP.Net :
ابتدا یک صفحه ASP.Net در محیط Visual Studio ایجاد کرده و یا صفحه از قبل طراحی شده خود را باز کنید . از منوی Toolbox و از قسمت کنترل های Standard یک کنترل TextBox را کشیده و روی صفحه قرار دهید . همجنین می توانید به صورت مستقیم در فسمت کدنویسی Source صفحه کد مربوط به کنترل را تایپ نمایید . به صورت پیش فرض کنترل TextBox دارای یک خط برای ورود اطلاعات است . در این حالت در هنگام اجرای صفحه ASP.Net کنترل TextBox به صورت یک تگ < input > بر روی صفحه تعریف می شود . اما در صورت نیاز می توان با تغییر مقدار خاصیت TextMode کنترل به مقدار MultiLine ، باعث شد تا کنترل TextBox چندین خطه شده و کاربر بتواند مقدار بیشتری متن و اطلاعات را درون کنترل وارد نماید . در این حالت کنترل به صورت یک تگ < textarea > بر روی صفحه قرار خواهد گرفت .
مثال : در مثال زیر 2 کنترل TextBox را بر روی صفحه قرار داده ایم . در کنترل اول مقدار خاصیت TextMode به صورت پیش فرض روی مقدار SingleLine تنظیم شده است . بنابراین فقط دارای یک خط برای ورود اطلاعات می باشد . اما در کنترل دوم مقدار این خاصیت روی MultiLine تنظیم شده و به همین دلیل دارای چندین خط ورود اطلاعات می باشد :
کد
</"asp:TextBox ID="Text1" runat="serve>
</"asp:TextBox ID="Text2" runat="server" TextMode="MultiLine>
مخفی کردن اطلاعات ورودی در کنترل TextBox از دید سایر کاربران :
در برخی از موراد مانند کادرهای ورود رمز عبور لازم است تا مقدار متن ورودی از دید سایر کاربران مخفی باشد . در این حالت معمولا کنترل یک نشانه * یا % را به جای هر کاراکتر ورودی توسط کاربر ، نمایش می دهد .
برای این منظور بایستی مقدار خاصیت TextMode کنترل را برابر با مقدار Password قرار دهید . در این حالت نشانه * یا هر نشانه مشابه دیگر ( بسته به نوع مرورگر مورد استفاده دارد ) به جای هر کاراکتر ورودی توسط کاربر نمایش داده خواهد شد .
مثال : در مثال زیر 2 کنترل TextBox را بر روی صفحه قرار داده ایم . در کنترل اول که به صورت پیش فرض می باشد ، کاراکترهایی ورودی نمایش داده می شوند . اما در کنترل دوم مقدار خاصیت TextMode کنترل را روی مقدار Password قرار داده ایم . در این کنترل کاراکترهای ورودی با استفاده از یک نشانه ، از دید کاربر مخفی شده است :
کد
</"asp:TextBox ID="Text1" runat="server>
</"asp:TextBox ID="Text2" runat="server" TextMode="Password>
رویداد مهم کنترل TextBox - رویداد TextChanged
هنگامی که کاربر هرگونه تغییری در اطلاعات موجود در کنترل TextBox مثل وارد کردن یک حرف جدید یا پاک کردن یک حرف موجود را انجام می دهد ، رویداد TextChanged کنترل TextBox فعال می شود . اما این رویداد به صورت پیش فرض صفحه را Postback نمی کند . از این رویداد می توانید در برنامه نویسی برای انجام یک سری دستورات در هنگام تغییر دادن متن کنترل توسط کاریر استفاده کنید . در مباحث پیش رفته تر به بررسی این روش خواهیم پرداخت . اما شما می توانید ترتیبی اتخاد کنید تا هر گاه کاربر اطلاعات خود را در کنترل TextBox وارد کرده و یا آن را تغییر دهد ، صفحه Postback ( یعنی به سرور ارسال شود ) شود . در این حالت بلافاصله بعد از اینکه کاربر اطلاعات را در کنترل وارد نموده و از آن خارج شود ، صفحه به سرور ارسال می شود . برای این منظور باید خاصیت AutoPostBack کنترل را روی مقدار true قرار دهید . در مثال زیر به توضیح عملی این مطلب پرداخته ایم .
مثال : در مثال زیر 2 کنترل TextBox را بر روی صفحه قرار داده ایم . در کنتر اول خاصیت AutoPostBack فعال نبوده و در نتیجه با تغییر متن درون آن و خروج از کنترل هیچ اتفاقی نمی افتاده و صفحه Postback نمی شود . اما در کنترل دوم با فعال کردن خاصیت AutoPostBack ، در صورت تغییر متن درون کنترل و خروج از آن ، بلافاصله صفحه Postback خواهد شد :
کد
</"asp:TextBox ID="Text1" runat="server>
</"asp:TextBox ID="Text2" runat="server" AutoPostBack = " true >
کامل کردن خودکار اطلاعات توسط کنترل TextBox :
مطمئنا شما در هنگام کار با سایت های مختلف به این مسئله برخورد کرده اید که هنگامی که یک متن را در کنترل TextBox وارد می کنید ، دفعه بعدی که به همان صفحه می روید ، با وارد نمودن اولین حرف متن مورد نظرتان ، کنترل تمام متن های قبلی که در کنترل وارد کرده اید و با آن حرف شروع می شوند را به شما نمایش می دهد . که می توانید هر کدام را انتخاب کرده و سپس کنترل به صورت اتوماتیک متن را کامل می کند . به این ویژگی کنترل TextBox ، Auto-Completion می گویند . بیشتر مرورگرها از این خاصیت پشتیبانی می کنند . آنها در هنگام وارد کردن متن توسط کاربر ، سایر موارد قبلی وارد شده توسط وی را به او نشان می دهند . نحوه عملکرد کنترل در این زمینه به نوع مرورگر و طراحی َآن بستگی دارد .
برای تنظیم نحوه عملکرد کنترل TextBox در این زمینه ، می توانید از خاصیت AutoComplete کنترل استفاده نمایید .