ورقة عمل ملزمة لكائن مجموعة مخصص باستخدام GridWeb
ربط ورقة عمل بمجموعة مخصصة
لتوضيح هذه الميزة ، تتناول هذه المقالة كيفية إنشاء تطبيق نموذج خطوة بخطوة. أولاً ، قم بإنشاء مجموعة مخصصة ثم استخدم تلك المجموعة للربط بورقة عمل.
الخطوة 1: إنشاء سجل مخصص
قبل إنشاء مجموعة مخصصة ، قم بإنشاء فئة للاحتفاظ بالسجلات المخصصة التي سيتم تخزينها في المجموعة. الغرض من هذه المقالة هو إعطاء فكرة عن كيفية إنشاء مجموعاتك المخصصة وربطها بـ Aspose.Cells.GridWeb ، لذا فإن كيفية إنشاء السجل المخصص متروك لك.
يستخدم المثال أدناه فئة MyCustomRecord التي تحتوي على خمسة حقول خاصة وخمس خصائص عامة تتحكم في الوصول إلى الحقول الخاصة. هنا هيكل الخصائص:
- خاصية StringField1 للقراءة والكتابةسلسلة (سلسلة).
- خاصية ReadonlyField2 للقراءة فقطسترينغفيلد 2 (سلسلة).
- خاصية DateField1 للقراءة والكتابةdatefield1 (التاريخ والوقت).
- خاصية IntField1 للقراءة والكتابةintfield1 (عدد صحيح).
- خاصية DoubleField1 للقراءة والكتابةمزدوج الحقل 1 (مزدوج).
C#
//Creating a class that will act as record for the custom collection
public class MyCustomRecord
{
//Private data members
private string stringfield1;
private string stringfield2 = "ABC";
private DateTime datefield1;
private int intfield1;
private double doublefield1;
//Creating a string property
public string StringField1
{
get { return stringfield1; }
set { stringfield1 = value; }
}
//Creating a readonly string property
public string ReadonlyField2
{
get { return stringfield2; }
}
//Creating a DateTime property
public DateTime DateField1
{
get { return datefield1; }
set { datefield1 = value; }
}
//Creating an int property
public int IntField1
{
get { return intfield1; }
set { intfield1 = value; }
}
//Creating a double property
public double DoubleField1
{
get { return doublefield1; }
set { doublefield1 = value; }
}
}
الخطوة 2: إنشاء مجموعة مخصصة
الآن ، قم بإنشاء مجموعة مخصصة لإضافة سجلات العملاء إليها والوصول إليها من. لتسهيل الأمر ، يستخدم هذا المثال فئة MyCollection التي تحتوي على مفهرس للقراءة فقط. باستخدام هذا المفهرس ، يمكننا الحصول على أي سجل مخصص مخزّن في المجموعة.
C#
//Creating a custom collection
public class MyCollection : CollectionBase
{
//Leaving the collection constructor empty
public MyCollection()
{
}
//Creating a readonly property for custom collection. This Item property is used by GridWeb control to
//determine the collection's type
public MyCustomRecord this[int index]
{
get { return (MyCustomRecord)this.List[index]; }
}
}
الخطوة 3: ربط ورقة عمل بمجموعة مخصصة
اكتملت عملية إنشاء مجموعة مخصصة. الآن استخدم المجموعة المخصصة للربط بورقة عمل في Aspose.Cells.GridWeb. قم أولاً بإنشاء نموذج ويب ، وأضف عنصر تحكم GridWeb إليه وأضف بعض التعليمات البرمجية.
لاستخدام المجموعة المخصصة للربط ، قم أولاً بإنشاء كائن من فئة MyCollection (تم إنشاؤه في الخطوة أعلاه). ثم قم بإنشاء وإضافة كائنات MyCustomRecord إلى كائن MyCollection.
أخيرًا ، قم بتعيين كائن MyCollection كمصدر بيانات ورقة العمل وربط ورقة العمل بالمجموعة. في هذه المرحلة ، يمكنك أيضًا إنشاء قواعد التحقق من صحة الأعمدة المرتبطة بورقة العمل.
C#
//Implementing Page_Load event handler
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false && this.GridWeb1.IsPostBack == false)
{
//Creating an object of custom collection
MyCollection list = new MyCollection();
//Creating an instance of Random class
System.Random rand = new System.Random();
//Creating a loop that will run 5 times
for (int i = 0; i < 5; i++)
{
//Creating an object of Custom Record
MyCustomRecord rec = new MyCustomRecord();
//Initializing all properties of Custom Record
rec.DateField1 = DateTime.Now;
rec.DoubleField1 = rand.NextDouble() * 10;
rec.IntField1 = rand.Next(20);
rec.StringField1 = "ABC_" + i;
//Adding Custom Record to Collection
((IList)list).Add(rec);
}
//Accessing a desired worksheet
GridWorksheet sheet = GridWeb1.WorkSheets[0];
//Setting the Data Source of worksheet
sheet.DataSource = list;
//Creating columns automatically
sheet.CreateAutoGenratedColumns();
//Setting the validation type of value to DateTime
sheet.BindColumns[2].Validation.ValidationType = ValidationType.DateTime;
//Binding worksheet
sheet.DataBind();
//Assigning an event handler to InitializeNewBindRow event of the worksheet
//sheet.InitializeNewBindRow += new InitializeNewBindRowHandler(GridWeb1_InitializeNewBindRow);
}
}
الخطوة 4: معالجة حدث InitializeNewBindRow الخاص بورقة العمل
في الكود أعلاه ، ربما لاحظت سطرًا إضافيًا من التعليمات البرمجية المستخدمة لتعيين معالج الأحداث GridWeb1_InitializeNewBindRow إلى InitializeNewBindRow الخاص بورقة العمل. يتم تشغيل هذا الحدث عند إضافة صف منضم جديد إلى ورقة العمل. لقد أنشأنا معالج حدث لهذا الحدث بسبب خاصية DateField1 للكائن MyCustomRecord.
Aspose.Cells. يتم تهيئة موقعGridWeb تلقائيًاint ومزدوج القيم مع**صفر (0)**كلما تمت إضافة صف منضم جديد إلى عنصر التحكم GridWeb. بالنسبة للتواريخ ، نود أن يقوم عنصر التحكم GridWeb بإضافة التاريخ الحالي تلقائيًا من النظام. للقيام بذلك ، قمنا بإنشاء معالج الأحداث GridWeb1_InitializeNewBindRow لحدث InitializeNewBindRow.
قم بالوصول إلى مثيل معين لفئة MyCustomRecord من GridWeb باستخدام وسيطة bindObject ثم قم بتعيين تاريخ النظام الحالي إلى خاصية DateField1 الخاصة به.
C#
//Creating GridWeb1_InitializeNewBindRow event handler
private void GridWeb1_InitializeNewBindRow(GridWorksheet sender, object bindObject)
{
//Accessing that custom record object that is newly bound
MyCustomRecord rec = (MyCustomRecord)bindObject;
//Initializing the DateTime of a property when a new row gets bound to the database
rec.DateField1 = DateTime.Now;
}
الخطوة الخامسة: تشغيل التطبيق
قم بتشغيل التطبيق إما بالضغط علىالسيطرة + F5 أو النقر فوقبداية زر في VS.NET. يتم فتح نموذج الويب في نافذة متصفح جديدة.
ورقة العمل مرتبطة بمجموعة مخصصة
انقر بزر الماوس الأيمن فوق عنصر التحكم GridWeb لإضافة سجل أو حذفه. على سبيل المثال ، أضف سجلاً جديدًا إلى ورقة العمل عن طريق تحديداضف سطر اختيار.
تحديد خيار إضافة صف من القائمة
عند إضافة صف جديد إلى ورقة العمل ، تحتوي الخلايا على بيانات افتراضية بما في ذلك تاريخ النظام الحالي.
تمت إضافة صف جديد إلى ورقة العمل بالبيانات الافتراضية
بعد إجراء التغييرات على البيانات ، انقر فوقيحفظ أويُقدِّم لحفظ التغييرات الخاصة بك.
حفظ التغييرات بالضغط على زر حفظ