برمجة زر انتر Enter keypress in asp.net
لمحة سريعة
في بعض الاحيان نحتاج الي برمجة زر انتر في بعض الشاشات مثل شاشة الدخول
فمثلا عند كتابة اسم المستخدم وكلمة المرور يريد المستخدم الضغط علي زر انتر في لوحة المفاتيح لكي يدخل بسرعة
كيف يتم ذلك
توجد طرق كثيرة لبرمجة زر انتر في لوحة المفاتيح
بواسطة طرق عديدة حسب الاتي
1- اذا كان الزر في صفحة عادية بدون ماستر باج وتسمي في هذه الحالة ويب فورم
Default Button in form.
2- اذا كان الزر في صفحة تابعة للماستر باج
Default Button in Master Page
سنأخذ الطريقتين معا لنوضح ذلك
طريقة الويب فورم بدون الماستر باج
طريقة 1
1- ضع زر عادي من نوع Button في صفحة عادية بدون ان تكون تابعة لماستر باج
2- ادخل علي وضع السورس في الصفحة ثم اعطي هذا الفورم الذي يحتوي الصفحة اعطيه خاصية defaultbutton
3- الان قم بفتح الصفحة علي المتصفح واضغط علي زر انتر في الكيبورد
وهذا هو كود الصفحة
<form id="form1" runat="server" defaultbutton="Button1">
<asp:Button ID="Button1" runat="server" Text="دخول" />
</form>
طريقة2
تستطيع ايضا عمل ذلك بالكود الداخلي في الصفحة بدون كتابة خاصية defaultbutton
افتح الكود الداخلي للصفحة ثم في حدث الباج لود Page_Load
اكتب
this.Form.DefaultButton = "Button1";
طريقة الصفحة داخل الماستر باج Keypress in web content masterpage
طريقة 1
1- ضع بانل عادي ثم ضع الزر داخل هذا البانل
2- اعطي هذا البانل خاصية defaultbutton مثل الفورم السابق
وبالتالي عند الضغط علي زر انتر سيتم الضغط علي الزر تلقائيا وهذا هو الكود
<asp:Panel ID="Panel1" runat="server" DefaultButton = "Button1">
<asp:Button ID="Button1" runat="server" Text="دخول" />
</asp:Panel>
طريقة2
وهي وضع تكست بوكس وايضا زر عادي ولكن بدون وضع بانل لاننا سنبرمج ذلك داخليا
<asp:textbox id="textbox1" runat="server"/>
<asp:textbox id="textbox2" runat="server"/>
<asp:button id="button1" text="دخول" runat="server"/>
وهنا وضعت 2 تكست بوكس وزر عادي
الان سنوصل التكست بوكس بهذا الزر داخليا من الكود الداخلي للصفحة في حدث الباج لود كما يلي
protected void Page_Load(object sender, EventArgs e)
{
textbox1.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if
((event.which == 13) || (event.keyCode == 13)) {document.getElementById(''" +
button1.UniqueID + "'').click();return false;}} else {return true}; ");
}
طريقة3
ايضا توجد طريقة بالكود الداخلي للبانل ايضا من الكود الداخلي للصفحة
وفي حدث الباج لود ضع الكود الاتي
Panel1.DefaultButton = "Button1";
ايضا تخبر البانل ان الزر هو الزر مثلا رقم1
طريقة 4
ايضا يمكنك اخبار الصفحة بالكود بطريقة اخري من خلال الاتي حتي لو لم تستخدم بانل
this.Form.DefaultButton = "Button1";
حيث تخبر الماستر باج او حتي الصفحة العادية ان الزر اسمه مثلا زر1
طريقة 5
يمكنك وضع زر داخل صفحة تابعة للماستر باج ثم من الكود الداخلي للصفحة ايضا تخبره بالاتي
this.Form.DefaultButton = Button1.UniqueID;
وهكذا فان هناك طرق عديدة لعمل حدث الضغط علي زر انتر في االموقع او الصفحة وذلك لكي تجلب حدث الضغط علي زر
Enter keypress event in asp.net
حمل المثال من هنا