لوب علي الجريدة او الداتا ليست find control in GriedView-DataList
حتي تعثر علي اداة بداخل الداتاليست او الجريدفيو مثلا تكست بوكس او لايبل ..
لديك تعليقات علي الموضوع في جريد فيو او داتا ليست
Label و Button ويوجد زر او تكست بوكس او لايبل يتكرراً مع كل تعليق
نريد ان نأتي باسم او خصائي اداة داخل الجريد فيو او الداتاليست وذلك حتي نستطيع ان نعدل او نحذف او نفعل ما نريد
اذن نحن في حاجة الي عمل لف ودوران حول كل الادوات بداخل الجريدة للحصول علي ما نريد
تنوية :عنصر مشترك في كل الامثلة التالية :
لابد من جعل خاصية DataKeys تساوي اسم حقل الاساس وذلك في خصائص الجريد فيو او الداتاليست
بين فصلتين DataKeys =user_id
ضع يها اسم الحقل الاساس التابع للجدول حتي تسطيع ان تضيف او تعدل او تحذف بناء علي هذا العنصر
اولا ايجاد اي عنصر بداخل الداتاليست Find Control in DataList
foreach (DataListItem row in dtListComments.Items)
{
TextBox txtComment = (TextBox)row.FindControl("txtComment ");
if (txtComment .Text != "")
{
int id = Convert.ToInt32(dtListComments.DataKeys[row.ItemIndex].ToString());
كدة معاك ال id وتقدر تعمل هنا اي شئ
}
ثانيا ايجاد اي عنصر بداخل الجريدفيو Find Control in GriedView
foreach (GriedViewRow row in grdComments.Rows)
{
TextBox txtComment = (TextBox)row.FindControl("txtComment ");
if (txtComment .Text != "")
{
// do sometheing افعل شئ هنا
}
ثالثا ايجاد داتا لبيست بداخل الداتاليست Find DataList in another DataList
هنا قد تضطر اللي ذلك ..علي سبيل المثال مثل الفايسبوك عندما يعلق مستخدم بداخل داتاليست علي موضوع بداخل داتاليست اخري
فهنا سوف تضطر الي ايجاد الداتاليست الثانية التي وضعتها بداخل الداتاليست الاولي ..ثم تعبئ البيانات للداتاليست الثانية الخاصة بالتعليقات
protected void dataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
DataList dataList2 = (DataList)e.Item.FindControl("dataList2");
if (dataList2 != null)
{
DataTable dt = "هنا طبعا جملة استعلام لكي اعبئ بها الداتاليست الثانية"
dataList2 .DataSource = dt;
dataList2 .DataBind();
}
}