문제

현재 ASP : Buttonfield를 열 중 하나로 가진 GridView를 가지고 있습니다. 명령의 이벤트 핸들러는 명령 인수에서 GridView의 행 ID를 추출하고이를 사용하여 일부 논리를 수행합니다. 이제이 열에 템플릿 필드를 사용하여 전환해야하며 다음과 같은 작업을 수행하고 싶습니다.

<asp:TemplateField HeaderText="Action">
    <ItemStyle HorizontalAlign="Center" />
        <ItemTemplate>
            <asp:LinkButton CommandName="myaction" CommandArgument="<%#Eval("id")%>" Text="do action" runat="server"/>
        </ItemTemplate>
 </asp:TemplateField>

내 문제는 CommandArgument 속성에 관한 것입니다. GridView의 행 ID가되는 방법을 모르겠습니다. EVAR ( "ID")가 작동하지 않습니다. 누구든지 ROW ID 속성의 이름이 무엇인지 아는 사람이 있습니까? 아니면 더 좋은 방법?

도움이 되었습니까?

해결책

Microsoft 웹 사이트 에서이 문서를 확인하십시오.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand.aspx

행 ID를 바인딩 할 필요가 없습니다. 명령 인수는 행 인수와는 반대로 이벤트 인수에 사용됩니다.

내가 말하려고하는 것은 행 ID가 암시 적다는 것 같아요. 이벤트 CommandArgs에 액세스하면 제기하려는 이벤트에 특정한 것이 있어야합니다.

즉, 페이지를 원한다면 "Next", "Prev", "First", "Last"또는 Commandargument의 페이지 번호가 있습니다.

"삭제"버튼 또는 ImageButton이 있다고 가정하십시오. 사용자가 클릭합니다. 삭제 이벤트는 포스트 백에서 수신되고 행 전체로 전달 된 상태에서 전체 행 객체가 인수로 전달됩니다. 그런 다음 그리드는 컨트롤 컬렉션에서 단일 컨트롤 인 것처럼 행을 삭제합니다. 왜냐하면 테이블은 테이블 행의 모음이기 때문입니다.

다른 팁

CommandArgument="<%# CType(Container, GridViewRow).RowIndex %>"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top