헤드에 다음과 같이 자바스크립트 코드를 추가합니다.
<script lang=javascript>
function sel(i) // 마우스를 위로 올린 후 실행
{
eval(i+".style.ground='#CCCC66'") // 행 색상 변경
eval(i+".style.cursor='hand'"); // 마우스를 위로 올리면 손 모양으로 변경됩니다.
}
function unsel(i) // 마우스가 떠난 후 실행됩니다.
{
eval(i+".style.Background=''");
}
함수 clicktr(i)
{
eval(i+".style.Background=''");
window.open("Edit.aspx?param="+i,"수정","height=490,width=710,resizing=no,scrollbars=no,status=no,toolbar=no,
메뉴바=아니요, 위치=아니요, 왼쪽=50, 상단=50");
}
</script>
DataGrid의 ItemDataBound(데이터가 바인딩될 때 발생) 이벤트:
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(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에 템플릿 열을 추가하면 사용자에게 선택 작업 제공(예: 선택 항목 삭제)을 제공하는 데 사용될 수 있습니다.
이때 위의 방법을 사용하면 CheckBox를 선택할 때마다 새 창이 나타납니다(onclick 이벤트가 트리거됨).
잘못된 해결책:
템플릿을 제외하고 원래 행 기반 속성을 열 기반으로 변경합니다.
예를 들어 템플릿이 열 6에 나열되어 있으면 다음과 같이 cs 파일을 수정할 수 있습니다.
private
void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType != ListItemType.Header)
{
string bm = e.Item.Cells[0].Text;
for(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) 함수
{
for(var j=0;j<5;j++)
{ eval("a"+j.toString()+ID+".style.ground='#CCCC66'") eval("a"+j.toString()+ID+".style.cursor='hand'" );
}
}
함수 unsel(i,ID)
{
for(var j=0;j<5;j++)
{ eval("a"+j.toString()+ID+".style.Background=''");
}
}
함수 clicktr(i)
{
for(var j=0;j<5;j++)
{
eval("a"+j.toString()+i+".style.Background=''");
window.open("Edit.aspx?param="+i,"수정","height=490,width=710,resizing=no,scrollbars=no,status=no,toolbar=no,
메뉴바=아니요, 위치=아니요, 왼쪽=50, 상단=50");
}
}