programing tip

에 포스트 백 비활성화

itbloger 2020. 12. 27. 10:25
반응형

에 포스트 백 비활성화


내 양식에 ASP.NET linkbutton 컨트롤이 있습니다. 나는 그것을 클라이언트 측의 자바 스크립트에 사용하고 서버에 다시 게시하지 않도록하고 싶습니다. (링크 버튼 컨트롤을 사용하여 스킨을 사용하고 경우에 따라 비활성화 할 수 있으므로 곧은 태그가 선호되지 않습니다).

서버에 다시 게시되지 않도록하려면 어떻게합니까?


ASPX 코드 :

<asp:LinkButton ID="someID" runat="server" Text="clicky"></asp:LinkButton>

뒤에있는 코드 :

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        someID.Attributes.Add("onClick", "return false;");
    }
}

HTML로 렌더링되는 것은 다음과 같습니다.

<a onclick="return false;" id="someID" href="javascript:__doPostBack('someID','')">clicky</a>

이 경우에는 onclick 기능이 유효성 검사기가됩니다. 거짓이면 "href"링크가 실행되지 않습니다. 그러나 그것이 사실이라면 href는 실행될 것입니다. 이것은 귀하의 게시물을 제거합니다.


이것은 도움이되지 않는 대답처럼 들릴 수 있습니다.하지만 순수한 클라이언트 측에 LinkButton을 사용하는 이유는 무엇입니까? 표준 HTML 앵커 태그를 사용하고 해당 onclick작업을 Javascript로 설정 하십시오.

해당 링크의 텍스트를 생성하기 위해 서버가 필요한 경우 asp:Label앵커의 시작 및 끝 태그 사이의 콘텐츠로 를 사용하십시오 .

서버 측 코드를 기반으로 스크립트 동작을 동적으로 변경해야하는 경우 asp:Literal기술로 고려하십시오 .

그러나 LinkButton의 Click 이벤트에서 서버 측 활동을 수행하지 않는 한 여기에서 사용하는 것이별로 중요하지 않은 것 같습니다.


당신도 할 수 있습니다

...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');return false"...

그리고 링크 버튼 포스트 백을 중지합니다.


href = "#"만 설정

<asp:LinkButton ID="myLink" runat="server" href="#">Click Me</asp:LinkButton>

HyperLink 컨트롤을 사용하여 조사해야한다고 생각합니다. 서버 측 컨트롤 (코드에서 가시성 등을 조작 할 수 있음)이지만 일반 ol '앵커 태그를 생략하고 포스트 백을 발생시키지 않습니다.


C #에서는 다음과 같이합니다.

MyButton.Attributes.Add("onclick", "put your javascript here including... return false;");

몇 분 전에이 과정을 마쳤습니다. 올바른 방법은

  1. OnClientClick
  2. Return False()

다음 코드 줄의 예 :

<asp:LinkButton ID="lbtnNext" runat="server" OnClientClick="findAllOccurences(); return false();" Visible="false"/>

내 작업 코드에서 해당 줄을 복사했습니다.


속성을 구현하는 대신 :

public partial class _Default : System.Web.UI.Page{
 protected void Page_Load(object sender, EventArgs e)
 {
    someID.Attributes.Add("onClick", "return false;");
 }}

사용하다:

OnClientClick="return false;"

asp : LinkButton 태그 내부


onclick 이벤트에서 자바 스크립트 함수를 호출합니다.


사용하려고 했습니까 OnClientClick?

var myLinkButton = new LinkButton { Text = "Click Here", OnClientClick = "JavaScript: return false;" };

<asp:LinkButton ID="someID" runat="server" Text="clicky" OnClientClick="JavaScript: return false;"></asp:LinkButton>

스크롤 위치를 유지하려면 다음과 같이 할 수 있습니다.

<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />

페이지 새로 고침을 방지하려면 사용이 return false작동하지 않는 asp:LinkButton경우

href="javascript: void;"

또는

href="#"

와 함께 OnClientClick="return false;"

<asp:LinkButton ID="linkPrint" runat="server" CausesValidation="False" href="javascript: void;"
        OnClientClick="javascript:self.print();return false;">Print</asp:LinkButton>

위의 코드는 페이지를 새로 고치지 않고 브라우저 인쇄를 호출합니다.


빈 ajax 업데이트 패널을 사용하고 링크 버튼의 클릭 이벤트를 여기에 연결하지 않는 이유는 무엇입니까? 이렇게하면 업데이트 패널 만 업데이트되므로 포스트 백을 방지하고 자바 스크립트를 실행할 수 있습니다.


아무도 이렇게하지 않는 것 같습니다.

createEventLinkButton.Attributes.Add("onClick", " if (this.innerHTML == 'Please Wait') { return false; } else {  this.innerHTML='Please Wait'; }");

이것이 작동하는 유일한 방법 인 것 같습니다.


jquery 준비 함수에서 다음과 같이 할 수 있습니다.

var hrefcode = $('a[id*=linkbutton]').attr('href').split(':');
var onclickcode = "javascript: if`(Condition()) {" + hrefcode[1] + ";}";
$('a[id*=linkbutton]').attr('href', onclickcode);

You might also want to have the client-side function return false.

<asp:LinkButton runat="server" id="button" Text="Click Me" OnClick="myfunction();return false;" AutoPostBack="false" />

You might also consider:

<span runat="server" id="clickableSpan" onclick="myfunction();" class="clickable">Click Me</span>

I use the clickable class to set things like pointer, color, etc. so that its appearance is similar to an anchor tag, but I don't have to worry about it getting posted back or having to do the href="javascript:void(0);" trick.


use html link instead of asp link and you can use label in between html link for server side control

ReferenceURL : https://stackoverflow.com/questions/176827/disable-the-postback-on-an-asplinkbutton

반응형