나는 Repeater
을 가지고 있으며, 각 항목에 대해 Repeater
에 CommandEvent를 발생시키는 버튼이 있습니다. 단추를 클릭 할 때 매개 변수로 개체를 전달해야합니다.전달 매개 변수 리피터에서
이 문제를 해결할 수 있습니까?
나는 Repeater
을 가지고 있으며, 각 항목에 대해 Repeater
에 CommandEvent를 발생시키는 버튼이 있습니다. 단추를 클릭 할 때 매개 변수로 개체를 전달해야합니다.전달 매개 변수 리피터에서
이 문제를 해결할 수 있습니까?
어떤 종류의 개체입니까? 버튼에 CommandArgument 속성이 있습니다. 문자열 값을 저장할 수 있습니다.
리피터의 ItemCommand을 처리하고 객체를 CommandArgument으로 전달하십시오.
Here은 예입니다.
<asp:LinkButton ID="btnDeleteComment" runat="server" Text="Delete" CommandName="DeleteComment" CommandArgument=<%#Eval("CommentID") %>></asp:LinkButton>
코드 숨김
protected void rptComments_ItemCommand(object source, RepeaterCommandEventArgs e) {
if(e.CommandName.ToLower().Equals("deletecomment")) {
clsComment comment = new clsComment("mediadb");
comment.CommentID = int.Parse(((LinkButton)e.CommandSource).CommandArgument);
comment.DeleteRecord();
rptComments.DataBind();
}
}
CommandArgument
클래스의 키 매개 변수 (예 : ID)를 사용해야합니다. 인스턴스가 필요하면 ItemCommand
이벤트 핸들러에서 인스턴스를 작성하십시오.
'RepeaterCommandEventArgs.CommandArgument'가'Object'인데도'Button.CommandArgument' 속성은'System.String'입니다. 따라서 암시 적 변환으로 인한 버그를 피하기 위해 (System.String에) 전달하려는 모든 데이터를 변환하는 것이 가장 강력 할 수 있습니다. @tomcamara는 System.String으로 변환 할 수있는 매개 변수 유형을 사용하고 있습니까? – pseudocoder
@ pseudocoder right, Button.CommandArgument is string : 내 대답이 고쳐졌습니다. –
그래서 내 매개 변수는 클래스입니다! 많은 속성. – mcamara
은 내 사용자 클래스의 객체입니다. – mcamara