UpdatePanel의 ListView의 LinkButton으로 인해 전체 포스트백 발생
UpdatePanel의 ListView에 LinkButton이 있습니다.저는 버튼(음, 그들 중 어느 것이라도)이 부분 포스트백을 발생시키기를 원하지만, 그들이 전체 페이지 포스트백을 발생시키고 있습니다.
<asp:UpdatePanel ID="upOutcomes" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:ListView ID="lvTargets" runat="server" onitemdatabound="lvTargets_ItemDataBound">
<ItemTemplate>
<asp:LinkButton ID="lnkAddTarget" CssClass="lo" Text='<%# Eval("Title") + " <b>" + Eval("Level") + Eval("SubLevel") + "</b>" %>' runat="server"></asp:LinkButton>
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
스택 오버플로에 대한 또 다른 게시물을 찾았는데 이 게시물을 추가할 것을 제안했습니다.
protected void lvTargets_ItemDataBound(object sender, ListViewItemEventArgs e) {
var lb = e.Item.FindControl("lnkAddTarget") as LinkButton;
tsm.RegisterAsyncPostBackControl(lb); // ToolkitScriptManager
}
별반 차이가 없어요
비슷한 글들도 몇 개 있지만 해결책을 찾을 수가 없네요!무슨 생각 있어요?
고객.ASP에서 IDMode 설정.NET 4를 사용하면 ASP 방법을 지정할 수 있습니다.NET은 HTML 요소의 id 속성을 생성합니다.
이전 버전의 ASP에서.NET(즉, 4 이전), 기본 동작은 Auto와 동등했습니다.클라이언트의 ID 설정아이디 모드.그러나 이제 기본 설정은 예측 가능합니다.
스크립트 관리자가 의 이전 버전에서 HTML 컨트롤이 생성될 것으로 예상하는 방식 때문에 이 경우 AutoId가 필요합니다.그물.
다음을 설정하여 이 문제를 해결했습니다.ClientIDMode="AutoID"
다음과 같이 해당 페이지의 페이지 지침에 표시됩니다.
<%@ Page Title="" ClientIDMode="AutoID" Language="C#"%>
이거 잘 되네요.
추가해 보기CommandName
,CommandArgument
속성과OnCommand
다음과 같이 링크 버튼에 이벤트 핸들러가 표시됩니다.
<asp:LinkButton CommandName='test' CommandArgument='<%# Eval("Title") %>' ID="lnkAddTarget" runat="server" OnCommand="LinkButtonCommandEventHandler" />
또는 - 추가OnItemCommand
전체 ListView에 대한 핸들러입니다.
다음을 설정하여 이 문제를 해결했습니다.고객IDMode="해당 페이지의 페이지 지시에 "AutoID"는 다음과 같이 표시됩니다.<%@ Page Title="" ClientIDMode="AutoID" Language="C#"%>
, 따라서 전체 포스트백을 발생시키기 위해 ListView 내에 ASP 링크 버튼이 있는 이전 문제를 해결할 수 있습니다.
그러나 클라이언트 코드(Jquery, Javascript)에 대한 ASP 컨트롤을 브라우저 소스 코드에 표시되는 대로 전체 이름으로 참조해야 할 수도 있습니다(Firefox에서 Firebug를 사용하여 이름을 가져옵니다).예를 들어, 이 Jquery 함수는$("#ContentPlaceHolder1_btnCancelReferCustomer").click(function () { $("#divRefer").hide({ effect: "slide", duration: 200 }); return false; });
다음으로 변경되었습니다(선택기에서 asp 버튼 이름 변경에 유의하십시오).$("#ctl00_ContentPlaceHolder1_btnCancelReferCustomer").click(function () { $("#divRefer").hide({ effect: "slide", duration: 200 }); return false; });
다음을 설정하여 이 문제를 해결했습니다.고객IDMode="해당 페이지의 페이지 지시문에 "AutoID"가 표시됩니다.<%@ 페이지 제목="""클라이언트IDMode="AutoID" 언어="C#"%>
언급URL : https://stackoverflow.com/questions/5652728/linkbutton-in-listview-in-updatepanel-causes-full-postback
'programing' 카테고리의 다른 글
(마우스 오버/아웃 설정 없이) 호버가 있는지 확인하는 순수한 자바스크립트 (0) | 2023.10.30 |
---|---|
C에서 EOF 검출 (0) | 2023.10.30 |
Spring Boot 컨트롤러에서 이미지를 반환하고 파일 시스템처럼 사용하는 방법 (0) | 2023.10.30 |
목표-C에서 NSDate를 현재 UTC로 설정 (0) | 2023.10.30 |
트리거(ORA-39083, ORA-00942)와 관련된 Oracle IMPDP REMAP_SCHMA 문제에 대한 좋은 해결 방법이 있습니까? (0) | 2023.10.30 |