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

كود شرطى فى اداة gridview محيرنى و ارجو مساعدتكم

بدأه ahmedghoname في 27 فبراير 2011 · 5 رد · 815 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

كود محيرنى وارجو مساعدتكم لى... ولكم كل الشكر

وصف الموقف :

صفحة بها اداة gridview بتعرض بيانات اتية نتيجة اختيار من قائمة منسدلة

ويوجد label مرتبطة بعدد السجلات التى تظهر فى اداة gridview الان

المطلوب : كود يؤدى هذا ....

لو عدد السجلات المعروضة الان فى اداة gridview

20 او اكبر اظهر label كذا مثلا

#2

ضع الشرط التالي :

if(int.parse(lab1.text)>=20)
{
//do some thing
}
else
{
//do some thing
}

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#3

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

عزيزي الأخ ahmedghoname

ما فهمته منك هو أنك تريد أن تقوم بعمل شيء معين حين يكون عدد الصفوف المعروضة حاليا 20 صف على سبيل المثال. بغض النظر عن عدد الصفوف المرتجعة من مصدر البيانات. سأقوم بكتابة مثال يحوي GridView تتغذى من DataTable يحوي 45 صف من البينات. تقوم الـ GridView بعرض 20 صف في الصفحة الواحدة، النتيجة هي 3 صفات ، الصفحتين الأولى تحوي كل منهما على 20 صف (المجموع 40) والاخيرة تحوي 5 صفوف.

يقوم البرنامج بطباعة عبارة معينه عندما يكون عدد الصفوف في الصفحة أكبر من او يساوي عشرين وفي حالة عدم توفر الشرط سيقوم بطباعة عبارة فارغة string.Empty. قبل أن نبداء أود الإشارة بأن الصفحة "ASPX Page" التي سأعمل عليها تحوي GridView بإسم MyGrid و Label بإسم MyLabel.

لعمل ذلك سأقوم بتعريف منتغير من نوع int وأعطية قيمة إبتدائية مساوية للصفر

protected int _currentRowCount = 0;

ثم سأقوم بتعريف 3 أحداث events لـ MyGirdView وهي كالتالي

PageIndexChanging والغرض منها فقط لأن MyGrid تتغذى من قبل بينات يتم إنشائها في الهواء وليس من قاعدة بينات، بمعنى آخر لا يوجد DataSource معين يقوم بقراءة البينات من منطقة معينة، نظرا لطبيعة تطبيقات الويب كونها Stateless أي أن البيانات يتم تدميرها بعد ما يتم الحصول على الـ Response من الخادم مالم يتم تخزينها في Session, ViewState...... etc، إليك الكود

protected void MyGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        MyGrid.PageIndex = e.NewPageIndex;
        MyGrid.DataBind();
    }

RowCreated وهذا الحدث يتم إطلاقة عندما تقوم الـ GridView بإنشاء صف سواء كان Header, Footer, Data Row, Empty Row, Pager Row .... etc وهنا سأقوم بالتأكد من ان السطر الحالي هو سطر يحوي بيانات وبعد ذلك سأقوم بإضافة عدد 1 إلى المتغير

_currentRowCount

كي أقوم بإستخدامه لاحقا، وهذا هو الكود

protected void MyGrid_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow) // Check to see if the current row is actually a data row and nothing else
            _currentRowCount++;
    }

أخيرا DataBound ويتم إطلاقها عندما تنتهي الـ GridView من قراءة وعرض البينات وهنا سأقوم بدراسة عدد الصفوف المعروضة حاليا كما هو موضح أدناه

protected void MyGrid_DataBound(object sender, EventArgs e)
    {
        if (_currentRowCount >= 20)
            MyLabel.Text = "Wow, I have at least 20 rows displayed!";
        else MyLabel.Text = string.Empty;

        _currentRowCount = 0;
    }

أخيرا عزيزي ahmedghoname أرجوا الإشارة إلى عملية تغذية البينات للـ GridView في هذا المثال بأنها غير فعالة ولكن الغرض منها توضيح الفكرة فقط، وأرجوا أن لا تستخدم هذه الطريقة في الحياه المهنية. الملفات كاملة موجودة في المرفقات.

أتمنى لك أخي العزيز التوفيق و النجاح

WebSite14.zip

#4

الاخ الفاضل Robatic

لك كل الشكر والتقدير على تعبك معايه وحجرب وارد عليك

شكرا جزيلا مره اخرى واكثر الله من امثالك

#5

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

اخي لذي طريقة ولا اعتقد انها الافضل ....

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

select count from table

ثم احفظ القيمة في متغير وسوف يتم حفظ عدد السطور الموجودة في الجدول في المتغير ثم انشئ شرطك اللذي تريد .....

وقال تعالى(( وَلَن تَرْضَى عَنكَ الْيَهُودُ وَلاَ النَّصَارَى حَتَّى تَتَّبِعَ مِلَّتَهُمْ قُلْ إِنَّ هُدَى اللّهِ هُوَ الْهُدَى وَلَئِنِ اتَّبَعْتَ أَهْوَاءهُم بَعْدَ الَّذِي جَاءكَ مِنَ الْعِلْمِ مَا لَكَ مِنَ اللّهِ مِن وَلِيٍّ وَلاَ نَصِيرٍ ))......

للمزيد من المشاريع الجاهزة ودورات برمجة المواقع اضغط هنا

#6

انا وجدت هذا الكود اسهل بكثير واشتغلت به بدون مشاكل تمام

GridView1.Rows.Count

شكرا لكم من ساعدنى ...........شكرا جزيلا

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

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

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

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

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