الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إجراء حدث عند الخروج من مربع النص

مغلق
بدأه المتميز في 4 أغسطس 2007 · 9 رد · 1,007 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي مربع نص اريد عندما يضع المستخدم رقم داخله ثم يضغط خارج مربع النص ( فقد التركيز ) يتم البحث في قاعدة البيانات عن هذا الرقم .

عند استخدام input(text) في ادوات HTML فيه حدث onblur فهل لها مقابل في مربع النص TextBox

وإذا لم يكن لها مقابل فكيف استخدم عملية البحث باستخدام input text

460.gif

#2

لم أجربها حقيقة ولكن ماذا لو استخدمت ال Html control ك web control ؟ اقصد تكون Server Side

بالتالي اعتقد يمكنك استخدام الجافا سكريبت ايضا

:) والله اعلم .. فكرة قد تصلح!

You can fly while you can touch the sky

#3

مشكور استاذ محمد على ردك

يا ليت تتكرم علينا بمثال بسيط

460.gif

#4

بالنسبة للحل الذي تود الوصول اليه كما ذكرته في سؤالك,استخدم الحدث TextChanged ولا تنسى الخاصية AutoPostBack:

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack=true OnTextChanged="TextBox1_TextChanged"></asp:TextBox>

 protected void TextBox1_TextChanged(object sender, EventArgs e)
	{
		do something
	}

بالنسبة للحدث onblur بصفة عامة تستطيع وضع onblur في صفحة الaspx او عمل ذلك بالكود او كما قال الاخ محمد وانا افضل الخيار الثاني:

aspx:

<asp:TextBox id="mytb" onblur="DoSomething();"

c#:

mytb.Attributes["onblur"] = "DoSomething()";

تم تعديل هذه المشاركة بواسطة madani في 5 أغسطس 2007 في 05:08

#5

توضيحا لشرح الأخ مدني مشكورا هنالك فرق بين ما كتبه

ففي هذه الحالة :

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack=true OnTextChanged="TextBox1_TextChanged"></asp:TextBox>

التابع TextBox1_TextChanged هو تابع C# أي أنه Server Side Code

بينما في الحالتين التاليتين :

<asp:TextBox id="mytb" onblur="DoSomething();"

mytb.Attributes["onblur"] = "DoSomething()";

فالتابع DoSomething هو تابع مكتوب في الجافاسكريبت Client Side ويجب أن يوجد في الصفحة أو في ملف سكريبت js له تروسية في الصفحة

تم تعديل هذه المشاركة بواسطة Arwany في 5 أغسطس 2007 في 10:17

#6

الشكر لكم جميعا

الان الاخ مدني ذكر

اقتباس
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack=true OnTextChanged="TextBox1_TextChanged"></asp:TextBox>

سؤالي / بما أني وضعت خاصية الـAutoPostBack=true ليش استعين بحدث تغيير النص OnTextChanged ؟ وهذا يعني أني سأكتب كود بالجافا سكربت ؟ وفي هذه الحالة اعتقد أني لست بحاجة لكتابة الـAutoPostBack=true

أنا وضعته هكذا

اقتباس
<asp:TextBox ID="TxtID" runat="server" style="vertical-align: middle; text-align: center" MaxLength="11" Width="112px" AutoPostBack="True"></asp:TextBox>

ووضعت حدث المعالجة في صفحة الـaspx.vb وعمل بشكل سليم .

شكرا لكم

460.gif

#7

تعقيبا على رد الاخ Arwany .. كلام مدني صحيح 100% لان في حالة الاخ المتميز هو يريد فقط تفعيل الحدث على ال Client Side و بعد تنفيذه ستكون ال Autopostback=true كافية لتجعل الطلب يعود مرة أخرى للسيرفر و يتم معالجته :)

You can fly while you can touch the sky

#8
اقتباس
وهذا يعني أني سأكتب كود بالجافا سكربت

الحدث OnTextChanged هو من نوع server side ,كما اشار الاخوة,وليس clientside اي انك لن تحتاج لكتابة كود onblur فالسيرفر بمجرد ان يرى autopostback=true سيقوم باضافة حدث الجا سكريبت onchange لكن عند ذهاب الصفحة الى السيرفر (في الpostback) سيكون من الاجمل لو نجد معالج حدث خاص في هذه الحالة بدل عمل مقارنات لمعرفة ان كان النص في الحقل قد تغير ام لا خاصة ان الpostback قد يحدث لاسباب عديدة كنقر زر من الازرار مثلا.

بالمناسبة ,انا لم افهم ماذا تقصد ب "ووضعت حدث المعالجة في صفحة الـaspx.vb وعمل بشكل سليم" ؟ لان الطريقة الوحيدة لعمل ذلك هو ان تعيد اختراع العجلة ,اي ان تقارن الviewstate مع النص المدخل في حقل النص و هذا ما يقوم به السيرفر خلف الستار قبل ان يستدعي الحدث OnTextChanged :)

تم تعديل هذه المشاركة بواسطة madani في 6 أغسطس 2007 في 16:33

#9

اللي اقصده

انت كتبت

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack=true OnTextChanged="TextBox1_TextChanged"></asp:TextBox>

وانا كتبت

   <asp:TextBox AutoPostBack=true ID="TxtWazn1" runat="server" Style="vertical-align: middle; text-align: center"
									Width="30px" Font-Names="Tahoma"></asp:TextBox>

ووضعت كود المعالجة في الملف default.aspx.vb

 Protected Sub TxtWazn1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtWazn1.TextChanged

code here


	End Sub

460.gif

#10

"Handles TxtWazn1.TextChanged" هو بيت القصيد :) .بدونه لا يتم التعرف على المعالج

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…