사용자를 나열하는 리피터가 있습니다.리피터에서 사용자 나열, 행의 버튼을 클릭 할 때 UserId를 얻는 방법
각 행에는 userId, username 등이 있으며 마지막 열에 버튼이 있습니다.
버튼을 클릭하면 현재 행의 사용자 ID를 어떻게 가져올 수 있습니까?
사용자를 나열하는 리피터가 있습니다.리피터에서 사용자 나열, 행의 버튼을 클릭 할 때 UserId를 얻는 방법
각 행에는 userId, username 등이 있으며 마지막 열에 버튼이 있습니다.
버튼을 클릭하면 현재 행의 사용자 ID를 어떻게 가져올 수 있습니까?
OnItemCommand 이벤트를 추가하고 UserId를 단추의 CommandArgument에 바인딩 할 수 있습니다. 뒤에
<asp:Repeater ID="repeater1" runat="server" OnItemCommand="repeater1_ItemCommand">
<ItemTemplate>
<asp:Button ID="button1" runat="server" CommandArgument='<%#Eval("UserId")%>' />
</ItemTemplate>
</asp:Repeater>
코드 :
protected void repeater1_ItemCommand(object sender, RepeaterCommandEventArgs e)
{
Guid userId = new Guid(e.CommandArgument.ToString());
}
또한 행에 숨겨진 필드를 사용하여뿐만 아니라 도움 것으로 나타났습니다.
두 대답 모두 좋습니다.
ASP.NET의 포스트 백 메커니즘을 거치지 않고 "평범한"이전 HTML 포스트 백을 수행하려는 경우 Anthony의 방법 (숨겨진 필드)을 사용하십시오.
그렇지 않으면 sshow를 사용하십시오. 그것은 .NET 프레임 워크 (적어도 버전 2.0까지)에 대해 좀 더 "관용적"인 것입니다.
하지만 Click 이벤트 중에 UserId를 가져와야합니까? – mrblah
죄송합니다, 이해가 안됩니까? – sshow
당신이 찾고있는 것이 가장 좋은 해결책입니다, 버튼을 클릭하면 repeater itemcommand 이벤트가 발생합니다. 거기에서 userID를 찾을 수 있습니다. 단순히 click 이벤트에서 작성한 내용을 repeate_ItemCommand 이벤트에 넣으십시오. –