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

استفسار عن عمل Filter الى GridView

بدأه D a r K T o u c h في 27 أغسطس 2010 · 14 رد · 760 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

اخواني يوجد لدي استفسار عن طريقة عمل Filter للـ Grid View بحيث لو وجد عندي 2 text box واريد ارجع بيانات على حسب الموجود في التكست بوكس

مثلا لو عندي جدول به عمودين First name and last name واريد يرجع لي جميع الاسامي مثلا الي اسمها الاول قيمة مأخوذة من الـ text box الاول فقط

او ال text box الثاني فقط

او

الاثنين معا .

فهل من مصادر او امثلة او حل

وشكرا .

تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 27 أغسطس 2010 في 08:14

My Latest

Hello Entity Framework Code First

--------------------

#2

السلام عليكم

الفكرة اخي فقط يجب ان تضع شرط بالاستعلام ان ياخذ القيمة من ال textbox

لاحظ المثال وان شاء الله يكون مثلما طلبت

1.rar

In bad state

#3

السلام عليكم ورحمة وبركاتة

اهلا اخي X-File

فعلا هذا الحل المطلوب

- استفسار اخر هل تعمل الطريقة هذه مع البيانات المربوطة من جدولين ( JOIN ) ؟

لفت انتباهي شي انت عملت 2 Grid view استطيع اطبقها على Grid view واحده لو يفضل تكون 2 ؟

شكرا

My Latest

Hello Entity Framework Code First

--------------------

#4

لا توجد اي مشكلة انا وضعت الكريد فيو الثاني لجلب كل القيم من قاعدة البيانات حتى تلاحظ عملية الفلترة

اما بخصوص الكريد الثاني لم افهم اي هل تريد تطبيقه على الثاني ايضا بكل الاحوال لا مشكلة

وضح ماذا تريد وتكرم ان شاء الله بسيطة

In bad state

#5

السلام عليكم روحمة الله وبركاتة

شكرا اخي عرفت الهدف من وجودة 2 Grid view

حاب اعرف طريقة توليد مسج عند عدم وجود نتائج مطابقة للفلترة ؟

My Latest

Hello Entity Framework Code First

--------------------

#6
    	string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    	SqlConnection con=new SqlConnection(str);
    	string com="SELECT ID, English_Name, lastname, Mobile, Email, City FROM Users WHERE (English_Name LIKE @English_Name + '%') OR (lastname LIKE @lastname + '%')";
    	SqlCommand comd=new SqlCommand(com,con);
    	comd.Parameters.AddWithValue("@lastname", TextBox2.Text);
    	comd.Parameters.AddWithValue("@English_Name", TextBox1.Text);
    	con.Open();
    	SqlDataReader reader = comd.ExecuteReader();
    	if (reader.HasRows)
    	{
        	GridView1.DataSource = reader;
        	GridView1.DataBind();
    	}
    	else
    	{
        	Response.Write("<script>alert('لا يوجد بيانات');</script>");
    	}
    	con.Close();

اخي فكرة المثال اتوقعها واضحة انا عملت postback على الحقول وهكذا سيطلب بيانات

+

المثال ليس عملي وانما يوضح الفكرة بشكل واضح

2.rar

In bad state

#7

السلام عليكم روحمة الله وبركاتة

فعلا اخوي X-File هذا الشي المطلوب

بس انا استخدم sqldatasoruce

هل اعمل رسالة الخطئ في Event او ارجع عدد الصفوف الموجودة في الGridview واذا كانو يساون 0 اعطيه رسالة الخطئ ؟

My Latest

Hello Entity Framework Code First

--------------------

#8

السلام عليكم

لم انتبه للسؤال :D

اخي الكريم اذا لم توجد نتائج ما معناتا

المعنى ان الكريد فيو عدد حقوله صفر اي السجلات

اذا في حدث ال prerender

   
  protected void GridView3_PreRender(object sender, EventArgs e)
	{

        	if (GridView3.Rows.Count == 0)
        	{
            	Response.Write("<script>alert('لا يوجد بيانات');</script>");
        	}
	}

طبعا هنا الكريد فيو الثالث ذو id GridView3

اي فقط ضع معرف الكريد فيو الذي تريد وسيعطي رسالة بانه لا توجد بيانات طبعا رايي ما تعملها alert

رايي عملها على lable

اي

   
 protected void GridView3_PreRender(object sender, EventArgs e)
	{

        	if (GridView3.Rows.Count == 0)
        	{
            	Lable1.Text = "لا يوجد بيانات للعرض";
        	}
	}
2

In bad state

#9

السلام عليكم ورحمة وبركاتة

شكرا لك اخي X-File

بصراحة يحتاج قسم الasp.net فرع نجمع فيه حلول الاسئلة للفائدة

-----------------

ممكن مصدر لشرح Event لان حاب افهمهم بشكل اكثر

وشكرا

My Latest

Hello Entity Framework Code First

--------------------

#11

السلام عليكم ورحمة الله وبركاتة

اخي X-File

الكود يعمل بشكل صحيح بس يعطيني الرسالة قبل مااعمل فلترة

وانا اريده عند عمل الفلترة ولا توجد اي مطابقة يرجع لي الرسالة

My Latest

Hello Entity Framework Code First

--------------------

#12
    	if(Page.IsCallback)
    	{
        	if (GridView3.Rows.Count == 0)
        	{
            	Response.Write("<script> alert('لا يوجد بيانات للعرض');</script>");
        	}
    	}

In bad state

#13

السلام عليكم ورحمة الله وبركاتة

اخي انا اضفت تعديلات بسيطة

فما رأيك

مسحت AutoPostBack من TextBox

واضفت Button

وهذا الكود

    protected void GridView1_PreRender(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            int row = GridView1.Rows.Count;
            if (row == 0)
            {
                Label1.Text = "NO Result found!";
            }
            else
            {
                Label1.Text = " ";
            }
        }
    }

فهل ممكن ؟؟

تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 29 أغسطس 2010 في 16:36

My Latest

Hello Entity Framework Code First

--------------------

#14

هذا غير ممكن بحدث ضغط الزر

حدث ضغط الزر يحدث قبل حدث ربط الكريد فو databinding

ولذلك سيكون الربط متاخر ب submit واحدة كل مرة وبهذا لا يمكننا عمل ذلك ارفقت لك المثال

انظر الكريد ذو المعرف Gridview3

1.rar

In bad state

#15
اقتباس
هذا غير ممكن بحدث ضغط الزر

اخي انا لم استخدم حدث الزر

انا اعتمد على الزر بحسب معرفتي انه يعمل post back للصفحة وفي حدث PreRender عملت الكود السابق

My Latest

Hello Entity Framework Code First

--------------------

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