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

بعض الاسئلة عن الجريد فيو

بدأه rabiemohamed في 10 يناير 2011 · 13 رد · 913 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سارفق ملف لتوضيح المطلوب

Doc1.rar

#2

أرفق نسخة من الكود :sleep:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3
rabiemohamed كتب:

سارفق ملف لتوضيح المطلوب

أخي الكريم

الصورة غير كافية

أرفق الكود كما قال الأخ Xacker

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

أو حى المشروع لنقوم بعمل اللازم أو أن ندلك على الطريقة

مع تحياتي

اللهم اجعلنا أهلاً لحمل رسالة العلم ونشرها

لتنعم أمة الإسلام بخير العلم ونوره

www.ijoul.com

#4
m.aljoul كتب:

أخي الكريم

الصورة غير كافية

أرفق الكود كما قال الأخ Xacker

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

أو حى المشروع لنقوم بعمل اللازم أو أن ندلك على الطريقة

مع تحياتي

الاخوة الأعزاء

بدايتنا اشكركم على الاهتمام

اما المطلوب بأختصار انى عندى جدول يحتوى على الدرجات

كود اطالب - الدرجة

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

فاذا كانت الدرجة اكبر من 50 يكون ناجح واذا قلت عن ذلك يكون راسب هذا أولاً

ثانياً: فى اسفل الجريد فيوم footer يعطينى كام واحد ناجح وكام واحد راسب

اتمنى اكون قدرت اوضح المطاوب

#5
Xacker كتب:

أرفق نسخة من الكود :sleep:

هل تقرأ "وضّح المطلوب"؟ لا!

إذاً، رجاء، أرفق نسخة من الكود... فنحن لن نقوم بكتابة كود كامل ليكون مسودة نعمل عليها فقط لتطبيق بضعة أسطر عليه كما ترغب!

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6
Xacker كتب:

هل تقرأ "وضّح المطلوب"؟ لا!

إذاً، رجاء، أرفق نسخة من الكود... فنحن لن نقوم بكتابة كود كامل ليكون مسودة نعمل عليها فقط لتطبيق بضعة أسطر عليه كما ترغب!

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

  For i As Integer = 0 To GridView1.Rows.Count - 1

        	Dim lb As Label = GridView1.Rows(i).FindControl("Label5")
        	If e.Row.RowType = DataControlRowType.DataRow Then
            	If (e.Row.DataItem("Degree") < 75) Then
                	e.Row.DataItem("lb") = "pass"
            	End If
        	End If
    	Next
	End Sub

مع العلم ان الlabel5 تم اضافته داخل الجريد فيو كتمبلت لكى يظهر فيه اذا كانت الدرجة اكبر من 75 يكتب بداخله passغير ذلك تكون fall

code.txt

تم تعديل هذه المشاركة بواسطة Xacker في 14 يناير 2011 في 02:25 — السبب: وضع الكود في المشاركة مباشرة

#7
rabiemohamed كتب:

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

يا أخي الكريم، نحن نسألك أن تضع الكود الخاص بالـ Grid view وأي حدث مرتبط به، حتى لا نضطر إلى كتابة شئ عشوائي من جديد يأخذ من وقتنا وستضطر بعدها إلى تعديل ما لديك مرة أخرى وسيأخذ وقت إضافي منك.

أيهما أفضل، العمل على نسخ مختلفة أم على النسخة ذاتها لديك فنتلافى أي مشكلة موجودة سلفاً دون الحاجة للأخذ والرد فيها مطولاً؟

أتمنى أن تكون فكرتي وصلت.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8
Xacker كتب:

يا أخي الكريم، نحن نسألك أن تضع الكود الخاص بالـ Grid view وأي حدث مرتبط به، حتى لا نضطر إلى كتابة شئ عشوائي من جديد يأخذ من وقتنا وستضطر بعدها إلى تعديل ما لديك مرة أخرى وسيأخذ وقت إضافي منك.

أيهما أفضل، العمل على نسخ مختلفة أم على النسخة ذاتها لديك فنتلافى أي مشكلة موجودة سلفاً دون الحاجة للأخذ والرد فيها مطولاً؟

أتمنى أن تكون فكرتي وصلت.

اخى العزيز اشكركم على طول بالكم

اريد ان يتم وضع الكود فى حدث عن اختيار المجموعة من الdropdownlist حيث بعد اختيار المجموعة يتم تحميل اسماء الطلبة اللى فى المجموعة وبجوار كل طالب الدرجة وتم اضافة الlabel لكى يحدد ان كان ناجح او راسب اعتماد على الدرجة

اتمنى تكون الرؤوية أتضحت

#9

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

اخي انا عملت مثال بسيط بحسب ما كتبته انت

اقتباس
اما المطلوب بأختصار انى عندى جدول يحتوى على الدرجات

كود اطالب - الدرجة

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

فاذا كانت الدرجة اكبر من 50 يكون ناجح واذا قلت عن ذلك يكون راسب هذا أولاً

ثانياً: فى اسفل الجريد فيوم footer يعطينى كام واحد ناجح وكام واحد راسب

اتمنى اكون قدرت اوضح المطاوب

طبعا هذه النتيجة النهائية

post-224629-045343400 1295021718_thumb.j

نأتي الى شكل الصفحة

        <h3>Grid View with student mark</h3>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataSourceID="SqlDataSource1" onrowdatabound="GridView1_RowDataBound" 
            ShowFooter="True">
            <Columns>
                <asp:BoundField DataField="StudentId" HeaderText="StudentId" 
                    SortExpression="StudentId" />
                <asp:TemplateField HeaderText="StudentMark" SortExpression="StudentMark">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("StudentMark") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("StudentMark") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <FooterTemplate>
                        <asp:Label ID="Label2" runat="server"></asp:Label>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label_m" runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:MytestConnectionString1 %>" 
            SelectCommand="SELECT [StudentId], [StudentMark] FROM [StudentTbl]"></asp:SqlDataSource>

اخي الكريم الفكرة بسيطة حيث ان العمل راح يكون في حدث الـ RowDataBound انظر الكود :

في البداية راح نعرف خارج هذا الحدث متغير من نوع int

ونكتب في الحدث هذه الاكواد

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

نسخة #C

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lbl = (Label)e.Row.FindControl("Label_m");

            int Smark = (int)DataBinder.Eval(e.Row.DataItem, "StudentMark");
            if (Smark >= 50)
            {
                lbl.Text = "Pass";
                counter++;
            }
            else
            {
                lbl.Text = "Fail";
            }
        }

نسخة VB

If e.Row.RowType = DataControlRowType.DataRow Then
	Dim lbl As Label = DirectCast(e.Row.FindControl("Label_m"), Label)

	Dim Smark As Integer = CInt(DataBinder.Eval(e.Row.DataItem, "StudentMark"))
	If Smark >= 50 Then
		lbl.Text = "Pass"
		counter += 1
	Else
		lbl.Text = "Fail"
	End If
End If

اخر شيئ عملت في Footer حيث يأخد قيمة الـ counter ويعرضها ..

نسخة #C

        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Label lbl2 = (Label)e.Row.FindControl("Label2");
            lbl2.Text = counter.ToString();
        }

نسخة VB

If e.Row.RowType = DataControlRowType.Footer Then
	Dim lbl2 As Label = DirectCast(e.Row.FindControl("Label2"), Label)
	lbl2.Text = counter.ToString()
End If

وهذا شكل الكود كاامل

    int counter = 0;
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lbl = (Label)e.Row.FindControl("Label_m");

            int Smark = (int)DataBinder.Eval(e.Row.DataItem, "StudentMark");
            if (Smark >= 50)
            {
                lbl.Text = "Pass";
                counter++;
            }
            else
            {
                lbl.Text = "Fail";
            }
        }
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Label lbl2 = (Label)e.Row.FindControl("Label2");
            lbl2.Text = counter.ToString();
        }
    }

Private counter As Integer = 0
Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs)
	If e.Row.RowType = DataControlRowType.DataRow Then
		Dim lbl As Label = DirectCast(e.Row.FindControl("Label_m"), Label)

		Dim Smark As Integer = CInt(DataBinder.Eval(e.Row.DataItem, "StudentMark"))
		If Smark >= 50 Then
			lbl.Text = "Pass"
			counter += 1
		Else
			lbl.Text = "Fail"
		End If
	End If
	If e.Row.RowType = DataControlRowType.Footer Then
		Dim lbl2 As Label = DirectCast(e.Row.FindControl("Label2"), Label)
		lbl2.Text = counter.ToString()
	End If
End Sub

واتمنى هذا هو المطلوب

good luck

المرفقات
result.JPG

تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 14 يناير 2011 في 21:19

My Latest

Hello Entity Framework Code First

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

#10
D a r K T o u c h كتب:

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

اخي انا عملت مثال بسيط بحسب ما كتبته انت

طبعا هذه النتيجة النهائية

post-224629-045343400 1295021718_thumb.j

نأتي الى شكل الصفحة

        <h3>Grid View with student mark</h3>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataSourceID="SqlDataSource1" onrowdatabound="GridView1_RowDataBound" 
            ShowFooter="True">
            <Columns>
                <asp:BoundField DataField="StudentId" HeaderText="StudentId" 
                    SortExpression="StudentId" />
                <asp:TemplateField HeaderText="StudentMark" SortExpression="StudentMark">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("StudentMark") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("StudentMark") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <FooterTemplate>
                        <asp:Label ID="Label2" runat="server"></asp:Label>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label_m" runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:MytestConnectionString1 %>" 
            SelectCommand="SELECT [StudentId], [StudentMark] FROM [StudentTbl]"></asp:SqlDataSource>

اخي الكريم الفكرة بسيطة حيث ان العمل راح يكون في حدث الـ RowDataBound انظر الكود :

في البداية راح نعرف خارج هذا الحدث متغير من نوع int

ونكتب في الحدث هذه الاكواد

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

نسخة #C

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lbl = (Label)e.Row.FindControl("Label_m");

            int Smark = (int)DataBinder.Eval(e.Row.DataItem, "StudentMark");
            if (Smark >= 50)
            {
                lbl.Text = "Pass";
                counter++;
            }
            else
            {
                lbl.Text = "Fail";
            }
        }

نسخة VB

If e.Row.RowType = DataControlRowType.DataRow Then
	Dim lbl As Label = DirectCast(e.Row.FindControl("Label_m"), Label)

	Dim Smark As Integer = CInt(DataBinder.Eval(e.Row.DataItem, "StudentMark"))
	If Smark >= 50 Then
		lbl.Text = "Pass"
		counter += 1
	Else
		lbl.Text = "Fail"
	End If
End If

اخر شيئ عملت في Footer حيث يأخد قيمة الـ counter ويعرضها ..

نسخة #C

        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Label lbl2 = (Label)e.Row.FindControl("Label2");
            lbl2.Text = counter.ToString();
        }

نسخة VB

If e.Row.RowType = DataControlRowType.Footer Then
	Dim lbl2 As Label = DirectCast(e.Row.FindControl("Label2"), Label)
	lbl2.Text = counter.ToString()
End If

وهذا شكل الكود كاامل

    int counter = 0;
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lbl = (Label)e.Row.FindControl("Label_m");

            int Smark = (int)DataBinder.Eval(e.Row.DataItem, "StudentMark");
            if (Smark >= 50)
            {
                lbl.Text = "Pass";
                counter++;
            }
            else
            {
                lbl.Text = "Fail";
            }
        }
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Label lbl2 = (Label)e.Row.FindControl("Label2");
            lbl2.Text = counter.ToString();
        }
    }

Private counter As Integer = 0
Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs)
	If e.Row.RowType = DataControlRowType.DataRow Then
		Dim lbl As Label = DirectCast(e.Row.FindControl("Label_m"), Label)

		Dim Smark As Integer = CInt(DataBinder.Eval(e.Row.DataItem, "StudentMark"))
		If Smark >= 50 Then
			lbl.Text = "Pass"
			counter += 1
		Else
			lbl.Text = "Fail"
		End If
	End If
	If e.Row.RowType = DataControlRowType.Footer Then
		Dim lbl2 As Label = DirectCast(e.Row.FindControl("Label2"), Label)
		lbl2.Text = counter.ToString()
	End If
End Sub

واتمنى هذا هو المطلوب

good luck

الاخ العزيز D a r K T o u c h

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

ويتبقى جزء صغير جدا حاولت فيه ولكن لم اصل لحل

فى الfooter الخاص بالجريد فيو بيعطينى كام عدد الpass

حاولت اجيب عدد Fail ولكن لم اصل لحل

اكون شاكر لو دلتنى على حلها

ولك وللموقهع الجميل هذا جزيل الشكر والعرفان

#11
اقتباس
لاخ العزيز D a r K T o u c h

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

ويتبقى جزء صغير جدا حاولت فيه ولكن لم اصل لحل

فى الfooter الخاص بالجريد فيو بيعطينى كام عدد الpass

حاولت اجيب عدد Fail ولكن لم اصل لحل

اكون شاكر لو دلتنى على حلها

ولك وللموقهع الجميل هذا جزيل الشكر والعرفان

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

اخي بنفس طريقة حساب الـ pass تعمل متغير للـ fail وتحسب العملية وخلاص

My Latest

Hello Entity Framework Code First

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

#12
D a r K T o u c h كتب:

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

اخي بنفس طريقة حساب الـ pass تعمل متغير للـ fail وتحسب العملية وخلاص

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

عرفت counter وعملت نفس اللى انت عملته ولكن ما اشتغل معى

اتمنى ان توضح لى احلها ازاى

#13

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

اخي الكريم انا ظبطت عندي وهذه للنتيجة :

post-224629-018054300 1295187996_thumb.j

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

    int counter = 0;
    int counter2 = 0;
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lbl = (Label)e.Row.FindControl("Label_m");

            int Smark = (int)DataBinder.Eval(e.Row.DataItem, "StudentMark");
            if (Smark >= 50)
            {
                lbl.Text = "Pass";
                counter++;
            }
            else
            {
                lbl.Text = "Fail";
                counter2++;
            }
        }
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Label lbl2 = (Label)e.Row.FindControl("Label2");
            lbl2.Text = "You have: " + counter.ToString() + " pass and " + counter2.ToString() + " Fail";
        }
    }

Private counter As Integer = 0
Private counter2 As Integer = 0
Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs)
	If e.Row.RowType = DataControlRowType.DataRow Then
		Dim lbl As Label = DirectCast(e.Row.FindControl("Label_m"), Label)

		Dim Smark As Integer = CInt(DataBinder.Eval(e.Row.DataItem, "StudentMark"))
		If Smark >= 50 Then
			lbl.Text = "Pass"
			counter += 1
		Else
			lbl.Text = "Fail"
			counter2 += 1
		End If
	End If
	If e.Row.RowType = DataControlRowType.Footer Then
		Dim lbl2 As Label = DirectCast(e.Row.FindControl("Label2"), Label)
		lbl2.Text = "You have: " & counter.ToString() & " pass and " & counter2.ToString() & " Fail"
	End If
End Sub
المرفقات
result.JPG

My Latest

Hello Entity Framework Code First

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

#14
D a r K T o u c h كتب:

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

اخي الكريم انا ظبطت عندي وهذه للنتيجة :

post-224629-018054300 1295187996_thumb.j

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

    int counter = 0;
    int counter2 = 0;
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lbl = (Label)e.Row.FindControl("Label_m");

            int Smark = (int)DataBinder.Eval(e.Row.DataItem, "StudentMark");
            if (Smark >= 50)
            {
                lbl.Text = "Pass";
                counter++;
            }
            else
            {
                lbl.Text = "Fail";
                counter2++;
            }
        }
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Label lbl2 = (Label)e.Row.FindControl("Label2");
            lbl2.Text = "You have: " + counter.ToString() + " pass and " + counter2.ToString() + " Fail";
        }
    }

Private counter As Integer = 0
Private counter2 As Integer = 0
Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs)
	If e.Row.RowType = DataControlRowType.DataRow Then
		Dim lbl As Label = DirectCast(e.Row.FindControl("Label_m"), Label)

		Dim Smark As Integer = CInt(DataBinder.Eval(e.Row.DataItem, "StudentMark"))
		If Smark >= 50 Then
			lbl.Text = "Pass"
			counter += 1
		Else
			lbl.Text = "Fail"
			counter2 += 1
		End If
	End If
	If e.Row.RowType = DataControlRowType.Footer Then
		Dim lbl2 As Label = DirectCast(e.Row.FindControl("Label2"), Label)
		lbl2.Text = "You have: " & counter.ToString() & " pass and " & counter2.ToString() & " Fail"
	End If
End Sub

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

وهذا ما تعودنا عليه من اعضاء هذا المنتدى المحترم

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