문제

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

서버에 다시 게시되는 것을 방지하려면 어떻게 해야 합니까?

도움이 되었습니까?

해결책

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 기능이 유효성 검사기가 됩니다.false인 경우 "href" 링크가 실행되지 않습니다.그러나 이것이 사실이라면 href가 실행될 것입니다.이렇게 하면 게시물이 삭제됩니다.

다른 팁

이것은 도움이되지 않는 대답처럼 들릴지 모르지만 ... 왜 순수한 고객 측에 링크 버튼을 사용하고 있습니까? 표준 HTML 앵커 태그를 사용하고 설정하십시오 onclick JavaScript에 대한 조치.

해당 링크의 텍스트를 생성하기 위해 서버가 필요한 경우 asp:Label 앵커의 시작과 엔드 태그 사이의 내용으로.

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

그러나 LinkButton의 클릭 이벤트에서 서버 측 활동을하지 않으면 여기에 사용하는 것이 그리 많지 않은 것 같습니다.

당신도 할 수 있습니다

...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');거짓 반환 "...

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

href = "#"을 설정했습니다.

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

하이퍼 링크 컨트롤을 사용하여 조사해야한다고 생각합니다. 서버 측 컨트롤 (따라서 코드에서 가시성 등을 조작 할 수 있음)이지만 일반 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 이벤트에서 Java 스크립트 함수를 호출하십시오.

당신은 그것을 사용하려고 했습니까? 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" />

클라이언트 측 기능이 False를 반환하도록 할 수도 있습니다.

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

당신은 또한 다음을 고려할 수 있습니다 :

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

클릭 가능한 클래스를 사용하여 포인터, 색상 등과 같은 것을 설정하여 모양이 앵커 태그와 비슷하지만 다시 게시되거나 href = "JavaScript : void를 수행 해야하는 것에 대해 걱정할 필요가 없습니다. (0); " 장난.

빈 ajax 업데이트 패널을 사용하고 LinkButton의 클릭 이벤트를 사용하지 않겠습니까? 이 방법으로 만 업데이트 패널 만 업데이트되므로 포스트 백을 피하고 JavaScript를 실행할 수 있습니다.

아무도 다음과 같이하고있는 것 같습니다.

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

이것은 유일한 방법 인 것 같습니다.

jQuery Ready 기능에서는 아래와 같은 작업을 수행 할 수 있습니다.

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

페이지의 새로 고침을 피하기 위해 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>

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

ASP 링크 대신 HTML 링크를 사용하면 서버 측 제어를 위해 HTML 링크 사이에서 레이블을 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top