أضف كود جافا سكريبت في الرأس كما يلي:
<script lang=javascript>
الدالة sel(i) // يتم تنفيذها بعد تحريك الماوس لأعلى
{
eval(i+".style.background='#CCCC66'"); // تغيير لون الصف
eval(i+".style.cursor='hand'"); // عندما يتم تحريك الماوس لأعلى، فإنه يتغير إلى شكل اليد
}
الدالة unsel(i) // تُنفَّذ بعد مغادرة الماوس
{
eval(i+".style.background=''");
}
الدالة Clicktr(i)
{
eval(i+".style.background=''");
window.open("Edit.aspx?param="+i,"Modify", "height=490,width=710,resizable=no,scrollbars=no,status=no,toolbar=no,
Menubar=no,location=no,left=50,top=50");
}
</script>
في حدث ItemDataBound الخاص بـ DataGrid (يحدث عندما تكون البيانات مرتبطة):
DataGrid1_ItemDataBound (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) فارغ خاص
{
إذا (e.Item.ItemType != ListItemType.Header)
{
string ID = e.Item.Cells[0].Text; // العمود الأول هنا هو قيمة المعرف في ربط البيانات (لتسهيل تمرير المعلمات في الصفحة المعدلة، إذا كانت هناك معلمات متعددة، يمكنك أيضًا إضافتها حسب الحاجة!)
e.Item.Attributes.Add("id",ID);
e.Item.Attributes.Add("onmouseover"،"sel(" + ID+ ")");
e.Item.Attributes.Add("onmouseout", "unsel(" + ID+ ")");
e.Item.Attributes.Add("onclick", "clicktr(" + ID+")");
}
}
//**************************** ينهي******************* **************************//
ومع ذلك، هناك عيوب في الطريقة المذكورة أعلاه، إذا قمت بإضافة عمود قالب إلى DataGrid، فسيتم حذفه يمكن استخدامها لتزويد المستخدمين بعمليات التحديد (مثل حذف التحديدات)،
في هذا الوقت، سيؤدي استخدام الطريقة المذكورة أعلاه إلى ظهور نافذة جديدة في كل مرة تحدد فيها CheckBox (يتم تشغيل حدث عند النقر).
الحل السيئ:
قم بتغيير السمات المستندة إلى الصفوف الأصلية إلى السمات المستندة إلى الأعمدة العمود، الكل أضف سمات إلى جميع الأعمدة
على سبيل المثال، إذا كان القالب مدرجًا في العمود 6، فيمكنك تعديل ملف cs مثل هذا
الفراغ الخاص DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
إذا (e.Item.ItemType != ListItemType.Header)
{
string bm = e.Item.Cells[0].Text;
ل(int i=0;i<5;i++)
{
e.Item.Cells[i].Attributes.Add("id"،"a"+i.ToString()+bm);
e.Item.Cells[i].Attributes.Add("onmouseover"،"sel(" +i.ToString()+"،+ bm + ")");
e.Item.Cells[i].Attributes.Add("onmouseout", "unsel(" +i.ToString()+!"+ bm + ")");
e.Item.Cells[i].Attributes.Add("onclick", "clicktr(" + bm +")");
}
}
}
في كود جافا سكريبت:
الدالة sel(i,ID)
{
ل(فار ي=0;ي<5;ي++)
{ eval("a"+j.toString()+ID+".style.background='#CCCC66'"); eval("a"+j.toString()+ID+".style.cursor='hand'" );
}
}
وظيفة إلغاء (ط، معرف)
{
ل(فار ي=0;ي<5;ي++)
{ eval("a"+j.toString()+ID+".style.background=''");
}
}
الدالة Clicktr(i)
{
ل(فار ي=0;ي<5;ي++)
{
eval("a"+j.toString()+i+".style.background=''");
window.open("Edit.aspx?param="+i,"Modify", "height=490,width=710,resizable=no,scrollbars=no,status=no,toolbar=no,
Menubar=no,location=no,left=50,top=50");
}
}