سارفق ملف لتوضيح المطلوب
بعض الاسئلة عن الجريد فيو
أرفق نسخة من الكود :sleep:
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
rabiemohamed كتب:سارفق ملف لتوضيح المطلوب
أخي الكريم
الصورة غير كافية
أرفق الكود كما قال الأخ Xacker
لكي نعرف طبيعة الكود وطريقتك في الاستخدام وحبذا لو ترسل مثالاً
أو حى المشروع لنقوم بعمل اللازم أو أن ندلك على الطريقة
مع تحياتي
اللهم اجعلنا أهلاً لحمل رسالة العلم ونشرها
لتنعم أمة الإسلام بخير العلم ونوره
m.aljoul كتب:أخي الكريم
الصورة غير كافية
أرفق الكود كما قال الأخ Xacker
لكي نعرف طبيعة الكود وطريقتك في الاستخدام وحبذا لو ترسل مثالاً
أو حى المشروع لنقوم بعمل اللازم أو أن ندلك على الطريقة
مع تحياتي
الاخوة الأعزاء
بدايتنا اشكركم على الاهتمام
اما المطلوب بأختصار انى عندى جدول يحتوى على الدرجات
كود اطالب - الدرجة
المطلوب هو عرض هذه الدرجات بالشكل السابق مضاف اليه حقل شبيه بيان نجاح
فاذا كانت الدرجة اكبر من 50 يكون ناجح واذا قلت عن ذلك يكون راسب هذا أولاً
ثانياً: فى اسفل الجريد فيوم footer يعطينى كام واحد ناجح وكام واحد راسب
اتمنى اكون قدرت اوضح المطاوب
Xacker كتب:أرفق نسخة من الكود :sleep:
هل تقرأ "وضّح المطلوب"؟ لا!
إذاً، رجاء، أرفق نسخة من الكود... فنحن لن نقوم بكتابة كود كامل ليكون مسودة نعمل عليها فقط لتطبيق بضعة أسطر عليه كما ترغب!
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
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
تم تعديل هذه المشاركة بواسطة Xacker في 14 يناير 2011 في 02:25 — السبب: وضع الكود في المشاركة مباشرة
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
Xacker كتب:يا أخي الكريم، نحن نسألك أن تضع الكود الخاص بالـ Grid view وأي حدث مرتبط به، حتى لا نضطر إلى كتابة شئ عشوائي من جديد يأخذ من وقتنا وستضطر بعدها إلى تعديل ما لديك مرة أخرى وسيأخذ وقت إضافي منك.
أيهما أفضل، العمل على نسخ مختلفة أم على النسخة ذاتها لديك فنتلافى أي مشكلة موجودة سلفاً دون الحاجة للأخذ والرد فيها مطولاً؟
أتمنى أن تكون فكرتي وصلت.
اخى العزيز اشكركم على طول بالكم
اريد ان يتم وضع الكود فى حدث عن اختيار المجموعة من الdropdownlist حيث بعد اختيار المجموعة يتم تحميل اسماء الطلبة اللى فى المجموعة وبجوار كل طالب الدرجة وتم اضافة الlabel لكى يحدد ان كان ناجح او راسب اعتماد على الدرجة
اتمنى تكون الرؤوية أتضحت
السلام عليكم ورحمة الله وبركاتة
اخي انا عملت مثال بسيط بحسب ما كتبته انت
اقتباساما المطلوب بأختصار انى عندى جدول يحتوى على الدرجاتكود اطالب - الدرجة
المطلوب هو عرض هذه الدرجات بالشكل السابق مضاف اليه حقل شبيه بيان نجاح
فاذا كانت الدرجة اكبر من 50 يكون ناجح واذا قلت عن ذلك يكون راسب هذا أولاً
ثانياً: فى اسفل الجريد فيوم footer يعطينى كام واحد ناجح وكام واحد راسب
اتمنى اكون قدرت اوضح المطاوب
طبعا هذه النتيجة النهائية
نأتي الى شكل الصفحة
<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 في 14 يناير 2011 في 21:19
D a r K T o u c h كتب:السلام عليكم ورحمة الله وبركاتة
اخي انا عملت مثال بسيط بحسب ما كتبته انت
طبعا هذه النتيجة النهائية
نأتي الى شكل الصفحة
<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 ولكن لم اصل لحل
اكون شاكر لو دلتنى على حلها
ولك وللموقهع الجميل هذا جزيل الشكر والعرفان
اقتباسلاخ العزيز D a r K T o u c hاشكرك جدا على الحل وهو بالفعل ما كنت اريده
ويتبقى جزء صغير جدا حاولت فيه ولكن لم اصل لحل
فى الfooter الخاص بالجريد فيو بيعطينى كام عدد الpass
حاولت اجيب عدد Fail ولكن لم اصل لحل
اكون شاكر لو دلتنى على حلها
ولك وللموقهع الجميل هذا جزيل الشكر والعرفان
السلام عليكم ورحمة الله وبركاتة
اخي بنفس طريقة حساب الـ pass تعمل متغير للـ fail وتحسب العملية وخلاص
D a r K T o u c h كتب:السلام عليكم ورحمة الله وبركاتة
اخي بنفس طريقة حساب الـ pass تعمل متغير للـ fail وتحسب العملية وخلاص
أخى العزيز جربت نفس الطريقة ولكن ما عملت معى
عرفت counter وعملت نفس اللى انت عملته ولكن ما اشتغل معى
اتمنى ان توضح لى احلها ازاى
السلام عليكم ورحمة الله وبركاتة
اخي الكريم انا ظبطت عندي وهذه للنتيجة :
وهذا الكود يمكن تقدر تقارنه وتوجد الخلل الذي عندك
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 SubD a r K T o u c h كتب:السلام عليكم ورحمة الله وبركاتة
اخي الكريم انا ظبطت عندي وهذه للنتيجة :
وهذا الكود يمكن تقدر تقارنه وتوجد الخلل الذي عندك
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
اشكرك على سعة صدرك واحترامك
وهذا ما تعودنا عليه من اعضاء هذا المنتدى المحترم