2011-05-13 5 views
0

저는 꽤 표준적인 DataGrid를 가지고 있습니다. BoundColumns가 몇 개 있습니다. 바인딩 된 항목의 일부 특성에 따라 텍스트 또는 LinkButton을 포함하도록 이러한 열 중 하나를 오버로드하고 있습니다.ItemDataBound의 DataGrid 행에 LinkButton 추가하기

그리드에 대한하여 ItemDataBound 이벤트

그래서 .. 나는 몇 가지를 확인하거나 Label 컨트롤을 추가하거나 적절한 셀에하는 LinkButton 컨트롤.

나는이 LinkButtons 중 하나를 클릭하면

은 다시 게시가 발생하지만, 버튼의 이벤트 핸들러에서 메소드를 호출하지 않습니다.

PreInit 페이지 이벤트 이후 컨트롤을 만들면 이벤트가 작동하지 않는다고 말하는 사람들이 있습니다. 그게 사실이야? 그렇다면 수동으로 연결할 수있는 방법이 있어야합니까?

나는 당연히 작동하지 않았다하여 ItemDataBound에에 추가 PreInit에있는 모든 버튼을 만들고에만 노력했다.

다른 사람들이 단추를 말하고 각 부모 컨트롤에 고유 ID가 있어야한다는 말을 들었습니다. 그게 사실이야?

맹목적으로 이것을 버리는 것이 아니라 왜 내가 이것을 할 수 없는지 정확하게 이해하고 싶습니다.

감사

답변

1

는 지금까지 내가 즉, 사용자가 데이터 그리드 내에서 링크 버튼을 넣어 경우가 RowCommand를 사용해야

<asp:LinkButton ID="btnUpdate" CommandName="Something" CommandArgument='<%# Bind("something") %>' runat="server">Update</asp:LinkButton> 

을 이해 그런 다음 당신은에 OnRowCommand 이벤트를 바인드해야 함수를 호출합니다. 그러면 링크 버튼에 주어진 명령 인수와 이벤트 인수에있는 명령 이름이 전달됩니다. 이를 사용하여 이벤트에 적절히 대응할 수 있습니다.

+0

좀 더주의 깊게 읽어야합니다. 동일한 생각을 적용해야합니다. 프로그래밍 방식으로 버튼을 추가하는 경우 CommandName 및 CommandArgument 속성을 설정해야합니다. 이미 그렇게한다면, 우리는 몇 가지 코드가 필요할 수 있습니다. – Streklin

+0

나는 현재 그렇게하지 않을 것이다. 당신이 필요로하는 이상한 것처럼 보입니다. 나는 그것을 조사 할 것이다. 감사. – Erix

+0

같은 결과 - postback가 발생하지만 commandEventHandler로 설정된 메소드는 호출되지 않습니다. – Erix

관련 문제