16-09-16, 10:28 AM
السلام عليكم
هيا نخربش قليللاً على ASP.Net
اذا كنت -وهذا أكيد - تحتاج لعمل جريد فيو يكون بها تشك بوكس وتود اجراء العمليات بدلالة حالة التشك بوكس
والله يا جماعة احس تعريب اسماء الكائنات مع إني عربي قحّ يتعبني المهم تابع معي
افتح الفيجوال عندك واختر اللغة اللي انت تحب تشتغل عليها بيسك أو سي السيد قصدي سي شارب
web -- ASP.Net Empty
اضف صفحة جديدة وركز ان صفحة الكود تكون معها ولو من دونها ما تفرق بس تعودنا على صفحة ديزاين وصفحة كتابة كود
المهم
كود الصفحة الجديدة
الان من الادوات اضف Gridview واضف في الجريد تمبليت فارغ وبرضو ادخل في التمبليت اثنين تشك بوكس واحد في الهيدر والثاني في الايتمItem
بهذا الشكل
اوكي اعرف ان الشرح غير مفصل عشان نقدر نرغي في الاسئلة شوية
الان نروح للصفحة في وضع التصميم وندوس عليها عشان نروج للبيج لود
ويكون الكود اللي هنكتبه هناك بهذا الشكل
طيب الان عندنا button واثنين تشك بوكس في الجريد والكود اضاف لنا ايام الاسبوع بالعربي والتواريخ وجنب كل منها تشك بوكس
يبقى لنا نوصل لهذي العناصر ونخليها تنفذ اي اجراء نوده
طيب بالنسبة للتشك بوكس اللي في الهيدر ارجع للصفحة في وضع التصميم واضغط على الجريد راح تلاقي طلع لك سهم صغير تدوسه تلطع لك قائمة صغيرة
اختر منها Edit Templates
ومن هناك توصل للتشك بوكس دوس عليها وشوف في الخصائص خلي autopostabck = true
ودوس عليها دبل كلك ونروح للكود ويكون كالتالي
نفس الشي مع البوتون او الزر او الزرار شقى المهم
ندوسه ونضع له الكود التالي
الان صفحة ثانية لكن على c sharp
في نفس المشروع وليكن اسمها Default2.aspx
وفي صفحة الكود الخلفي
النتيجة هكذا
اذا اردت اسماء الايام تظهر بالعربي تابع الشرح اعلاه
وصلى الله وسلم على سيدنا محمد وعلى آله وصحبه أجمعين وارض اللهم على ابي بكر وعمر وعثمان وعلي ومن تبعهم الى يوم الدين
كتبت ما قرأتم فلاتنسوا أخاكم من دغوة طيبة في هذا اليوم المبارك
اللهم انفعهم بما كتبت وآجرني عليه خيراً
هيا نخربش قليللاً على ASP.Net
اذا كنت -وهذا أكيد - تحتاج لعمل جريد فيو يكون بها تشك بوكس وتود اجراء العمليات بدلالة حالة التشك بوكس
والله يا جماعة احس تعريب اسماء الكائنات مع إني عربي قحّ يتعبني المهم تابع معي
افتح الفيجوال عندك واختر اللغة اللي انت تحب تشتغل عليها بيسك أو سي السيد قصدي سي شارب
web -- ASP.Net Empty
اضف صفحة جديدة وركز ان صفحة الكود تكون معها ولو من دونها ما تفرق بس تعودنا على صفحة ديزاين وصفحة كتابة كود
المهم
كود الصفحة الجديدة
PHP كود :
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Gridvie wWith checkBox</title>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
بهذا الشكل
PHP كود :
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" ShowFooter="True">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Check">
<FooterTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="تصفية" Width="191px" />
</FooterTemplate>
<HeaderTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox2_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<SortedAscendingCellStyle BackColor="#FDF5AC" />
<SortedAscendingHeaderStyle BackColor="#4D0000" />
<SortedDescendingCellStyle BackColor="#FCF6C0" />
<SortedDescendingHeaderStyle BackColor="#820000" />
</asp:GridView>
الان نروح للصفحة في وضع التصميم وندوس عليها عشان نروج للبيج لود
ويكون الكود اللي هنكتبه هناك بهذا الشكل
PHP كود :
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Page.Culture = "ar-SA" 'لجعل الصفحة تتعامل مع النظام العربي كأسماء الايام والشهور الخ
If Not IsPostBack Then
'في حال تحميل الصفحة قبل اي حدث يستدعي البوست باك
Dim dt As New DataTable() 'كأننا وصعنا جدول
dt.Columns.Add("Date") 'كأنه اسم الحقل داخل الجدول
dt.Columns.Add("Day_Name")
For i = 0 To 6 ' فقط نريدعدد اام الاسبوع تكون كسجلات
Dim f As Date = Date.Today.AddDays(i) 'لاضافة التواريخ بشكل متوالي نبدأ من تاريخ اليوم
Dim dates As String = f.ToString("dd/MM/yyyy") 'التحكم في شكل وهيئة التاريخ
Dim ff As String = f.ToString("dddd") ' لاضافة اسم اليوم مكتوباُ
dt.Rows.Add(dates, ff) ' نقوم بادراج السجلات كما ترى لدينا فقط سجلين التارخ واسم اليوم
Next
'نجعل الجدول يكون مصدر للبيانات في الرجيد
GridView1.DataSource = dt.AsDataView
'نأمر الجريد بأخذ القيم واعرضها للمستحدم
GridView1.DataBind()
End If
End Sub
يبقى لنا نوصل لهذي العناصر ونخليها تنفذ اي اجراء نوده
طيب بالنسبة للتشك بوكس اللي في الهيدر ارجع للصفحة في وضع التصميم واضغط على الجريد راح تلاقي طلع لك سهم صغير تدوسه تلطع لك قائمة صغيرة
اختر منها Edit Templates
ومن هناك توصل للتشك بوكس دوس عليها وشوف في الخصائص خلي autopostabck = true
ودوس عليها دبل كلك ونروح للكود ويكون كالتالي
PHP كود :
Protected Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs)
'للوصول الى التشك بوكس في رأس الجريد
Dim chh As CheckBox = GridView1.HeaderRow.FindControl("CheckBox2")
'نستطيع الوصول للعناصر داخل الجريد اما بحساب عدد السجلات بها كما في هذا الكود أو بطريقة اخرى تجدها في كود الزر تصفية وكل الطرق تودي فين؟ لا للحل ماهو لروما هههههههههههههههه
For i = 0 To GridView1.Rows.Count - 1
'الان نبحث عن كل تشك بوكس حسب الانكدس تبع السجل
Dim ch As CheckBox = GridView1.Rows(i).FindControl("CheckBox1")
'نقوم بتنفيذ الحدث اللي يهمنا وهو تحديد الشك بوكس وتأخذ نفس حالة التشك اللي في رأس الجريد
ch.Checked = chh.Checked
Next
End Sub
ندوسه ونضع له الكود التالي
PHP كود :
Protected Sub Button1_Click(sender As Object, e As EventArgs)
' كما أشرنا سابقاً عن تعدد طرق الوصول للعناصر أو للكائنات داخل الجريد هنا نمر على كل سجل for each
For Each row As GridViewRow In GridView1.Rows
Dim ch As CheckBox = row.FindControl("CheckBox1")
' اذا كان السجل متعلم عليه يا معلم اخفيه عن نظر المستخدم
If ch.Checked Then row.Visible = False
Next
End Sub
في نفس المشروع وليكن اسمها Default2.aspx
PHP كود :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Gridvie wWith checkBox</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" ShowFooter="True">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Check">
<FooterTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="تصفية" Width="191px" />
</FooterTemplate>
<HeaderTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox2_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<SortedAscendingCellStyle BackColor="#FDF5AC" />
<SortedAscendingHeaderStyle BackColor="#4D0000" />
<SortedDescendingCellStyle BackColor="#FCF6C0" />
<SortedDescendingHeaderStyle BackColor="#820000" />
</asp:GridView>
<br />
</div>
</form>
</body>
</html>
PHP كود :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
/// <summary>
/// VB4Arab.com
/// أبو عمر
/// 2016/9/16
/// </summary>
partial class Default2 : System.Web.UI.Page
{
protected void // ERROR: Handles clauses are not supported in C#
Page_Load(object sender, EventArgs e)
{
Page.Culture = "ar-SA";
//لجعل الصفحة تتعامل مع النظام العربي كأسماء الايام والشهور الخ
if (!IsPostBack)
{
//في حال تحميل الصفحة قبل اي حدث يستدعي البوست باك
DataTable dt = new DataTable();
//كأننا وصعنا جدول
dt.Columns.Add("Date");
//كأنه اسم الحقل داخل الجدول
dt.Columns.Add("Day_Name");
// فقط نريدعدد اام الاسبوع تكون كسجلات
for (int i = 0; i <= 6; i++)
{
System.DateTime f = System.DateTime.Today.AddDays(i);
//لاضافة التواريخ بشكل متوالي نبدأ من تاريخ اليوم
string dates = f.ToString("dd/MM/yyyy");
//التحكم في شكل وهيئة التاريخ
string ff = f.ToString("dddd");
// لاضافة اسم اليوم مكتوباُ
dt.Rows.Add(dates, ff);
// نقوم بادراج السجلات كما ترى لدينا فقط سجلين التارخ واسم اليوم
}
//نجعل الجدول يكون مصدر للبيانات في الرجيد
GridView1.DataSource = dt.AsDataView ();
//نأمر الجريد بأخذ القيم واعرضها للمستحدم
GridView1.DataBind();
}
}
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
//للوصول الى التشك بوكس في رأس الجريد
CheckBox chh = (CheckBox)GridView1.HeaderRow.FindControl("CheckBox2");
//نستطيع الوصول للعناصر داخل الجريد اما بحساب عدد السجلات بها كما في هذا الكود أو بطريقة اخرى تجدها في كود الزر تصفية وكل الطرق تودي فين؟ لا للحل ماهو لروما هههههههههههههههه
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
//الان نبحث عن كل تشك بوكس حسب الانكدس تبع السجل
CheckBox ch =(CheckBox) GridView1.Rows[i].FindControl("CheckBox1");
//نقوم بتنفيذ الحدث اللي يهمنا وهو تحديد الشك بوكس وتأخذ نفس حالة التشك اللي في رأس الجريد
ch.Checked = chh.Checked;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
// كما أشرنا سابقاً عن تعدد طرق الوصول للعناصر أو للكائنات داخل الجريد هنا نمر على كل سجل for each
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox ch = (CheckBox)row.FindControl("CheckBox1");
// اذا كان السجل متعلم عليه يا معلم اخفيه عن نظر المستخدم
if (ch.Checked)
row.Visible = false;
}
}
}
اذا اردت اسماء الايام تظهر بالعربي تابع الشرح اعلاه
وصلى الله وسلم على سيدنا محمد وعلى آله وصحبه أجمعين وارض اللهم على ابي بكر وعمر وعثمان وعلي ومن تبعهم الى يوم الدين
كتبت ما قرأتم فلاتنسوا أخاكم من دغوة طيبة في هذا اليوم المبارك
اللهم انفعهم بما كتبت وآجرني عليه خيراً
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات