เพิ่มโค้ดจาวาสคริปต์ในส่วนหัวดังนี้:
<script lang=javascript>
function sel(i) // ดำเนินการหลังจากเลื่อนเมาส์ขึ้น
-
eval(i+".style.พื้นหลัง='#CCCC66'"); // เปลี่ยนสีของแถว
eval(i+".style.cursor='hand'"); // เมื่อเลื่อนเมาส์ขึ้น มันจะเปลี่ยนเป็นรูปทรงมือ
-
function unsel(i) // ดำเนินการหลังจากที่เมาส์ออกไป
-
eval(i+".style.พื้นหลัง=''");
-
ฟังก์ชั่น clicktr(i)
-
eval(i+".style.พื้นหลัง=''");
window.open("Edit.aspx?param="+i,"Modify","height=490,width=710,resizable=no,scrollbars=no,status=no,toolbar=no,
แถบเมนู=no,location=no,left=50,top=50");
-
</script>
ในเหตุการณ์ ItemDataBound ของ DataGrid (เกิดขึ้นเมื่อข้อมูลถูกผูกไว้):
โมฆะส่วนตัว DataGrid1_ItemDataBound (ผู้ส่งวัตถุ, System.Web.UI.WebControls.DataGridItemEventArgs e)
-
ถ้า(e.Item.ItemType != ListItemType.Header)
-
string ID = e.Item.Cells[0].Text; // คอลัมน์แรกที่นี่คือค่า ID ในการผูกข้อมูล (เพื่อความสะดวกในการส่งพารามิเตอร์ในหน้าที่แก้ไข หากมีพารามิเตอร์หลายตัว คุณสามารถเพิ่มพารามิเตอร์เหล่านั้นได้ ตามความจำเป็น!)
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 สามารถใช้เพื่อให้ผู้ใช้ดำเนินการเลือกได้ (เช่นการลบตัวเลือก)
ในขณะนี้ การใช้วิธีการข้างต้นจะทำให้หน้าต่างใหม่ปรากฏขึ้นทุกครั้งที่คุณเลือกช่องทำเครื่องหมาย (เหตุการณ์ onclick จะถูกทริกเกอร์)
วิธีแก้ปัญหาที่ไม่ดี:
เปลี่ยนแอตทริบิวต์ตามแถวดั้งเดิมเป็นแบบคอลัมน์ ยกเว้นเทมเพลต คอลัมน์ทั้งหมด เพิ่มแอตทริบิวต์ลงในคอลัมน์ทั้งหมด
ตัวอย่างเช่น หากเทมเพลตแสดงอยู่ในคอลัมน์ 6 คุณสามารถแก้ไขไฟล์ cs เช่น
void DataGrid1_ItemDataBound(ผู้ส่งวัตถุ System.Web.UI.WebControls.DataGridItemEventArgs e)
-
ถ้า(e.Item.ItemType != ListItemType.Header)
-
string bm = e.Item.Cells[0].ข้อความ;
สำหรับ(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 +")");
-
-
-
ในโค้ดจาวาสคริปต์:
function sel(i,ID)
-
สำหรับ(var j=0;j<5;j++)
{ eval("a"+j.toString()+ID+".style.พื้นหลัง='#CCCC66'"); eval("a"+j.toString()+ID+".style.cursor='hand'" );
-
-
ฟังก์ชั่น unsel (i, ID)
-
สำหรับ(var j=0;j<5;j++)
{ eval("a"+j.toString()+ID+".style.พื้นหลัง=''");
-
-
ฟังก์ชั่น clicktr(i)
-
สำหรับ(var j=0;j<5;j++)
-
eval("a"+j.toString()+i+".style.พื้นหลัง=''");
window.open("Edit.aspx?param="+i,"Modify","height=490,width=710,resizable=no,scrollbars=no,status=no,toolbar=no,
แถบเมนู=no,location=no,left=50,top=50");
}
}