Отключить обратную передачу на
У меня есть ASP.NET управление linkbutton в моей форме. Я хотел бы использовать его для javascript на стороне клиента и предотвратить его отправку обратно на сервер. (Я хотел бы использовать элемент управления linkbutton, чтобы я мог снять его и отключить в некоторых случаях, поэтому прямой тег не предпочтителен).
Как я могу предотвратить его отправку обратно на сервер?
16 ответов:
код 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 будет выполнен. Это устраняет ваш пост обратно.
Это может звучать как бесполезный ответ ... Но почему вы используете LinkButton для чего-то чисто клиентского? Используйте стандартный HTML-тег привязки и установите его
onclick
действие для вашего Javascript.Если вам нужен сервер для генерации текста этой ссылки, то используйте
asp:Label
как содержимое между начальным и конечным тегами якоря.Если вам нужно динамически изменить поведение скрипта на основе кода на стороне сервера, рассмотрите
asp:Literal
как a метод.но если вы не выполняете действия на стороне сервера из события Click LinkButton, просто не кажется, что здесь есть смысл его использовать.
Вы тоже можете это сделать
...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');return false"...
и он останавливает кнопку обратной связи
просто установите href="#"
<asp:LinkButton ID="myLink" runat="server" href="#">Click Me</asp:LinkButton>
Я думаю, что вы должны исследовать с помощью элемента управления гиперссылкой. Это серверный элемент управления (поэтому вы можете управлять видимостью и т. д. Из кода), но он пропускает обычный тег привязки и не вызывает обратной передачи.
В C#, вы бы сделали что-то вроде этого:
MyButton.Attributes.Add("onclick", "put your javascript here including... return false;");
просто прошел через это до нескольких минут, правильный способ сделать это-использовать
OnClientClick
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 tag
вы пробовали использовать
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>
вы также можете захотеть, чтобы функция на стороне клиента возвращала 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'; }");
Это, кажется, единственный способ, который работает.
что-то еще вы можете сделать, если вы хотите сохранить свою позицию прокрутки это:
<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />