GridView에서 특정 컬럼에 있는 값들을 인자로 해서 특정 스크립트를 호출해줄때.

RowDataBound이벤트에서
(e.Row.RowType == DataControlRowType.DataRow) 일때

e.Row.Attributes.Add("OnClick", "popView(this)");
e.Row.Attributes.Add("arg1", e.Row.Cells[1].Text);
e.Row.Attributes.Add("arg2", e.Row.Cells[8].Text);
e.Row.Attributes.Add("arg3", e.Row.Cells[9].Text);
e.Row.Attributes.Add("OnClick", "popView(this)");

이렇게 해주고.
(arg1에는 두번째컬럼의 Text값이, arg2에는 아홉번째 컬럼의 Text값이, arg3에는 열번째 컬럼의 Text값이 들어갑니다)
aspx쪽에서 스크립트에서
function popView(arg)
{
     var value1 = arg.arg1;
     var value2 = arg.arg2;
     var value3 = arg.arg3;
}

이렇게 사용하면 됩니다.

Repeater에서는 같은 방법을 사용할수 없어서(못해서.ㅠㅠ)

aspx페이지에서 직접
<ItemTemplate>
<tr style="height: 25px;" onclick="popView('<%# Eval("FILE_CODE")%>' )">
<td ....
</tr>
</ItemTemplate>

이런식으로 넣어줬습니다. 위에서 처럼 배열(?)처럼 넣지는 못했구요.
그냥 repeater의 datasource에서의 특정 컬럼값을 넣어줬지요...
(물론 이렇게 밖에 하는걸 못찾아서... ㅠㅠ)

요즘은 Gridview는 잘 안쓴다고 하던데..

전 아직도 이렇게 쓰네요. 으헝헝


by 피요히코~ 2009. 4. 7. 16:03