Отключите обратную передачу в <ASP: LinkButton>
У меня есть элемент управления ASP.NET linkbutton в моей форме. Я хотел бы использовать его для javascript на стороне клиента и предотвратить его отправку обратно на сервер. (Я бы хотел использовать элемент управления linkbutton, чтобы я мог его обмануть и отключить в некоторых случаях, поэтому тег прямой вверх не является предпочтительным).
Как предотвратить его отправку на сервер?
Ответы
Ответ 1
Код 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 будет выполнен. Это устраняет ваш пост.
Ответ 2
Это может звучать как бесполезный ответ... Но почему вы используете LinkButton для чего-то чисто клиентского? Используйте стандартный тег привязки HTML и установите его действие onclick
на ваш Javascript.
Если вам нужен сервер для генерации текста этой ссылки, используйте asp:Label
как содержимое между стартовыми и конечными тегами привязки.
Если вам необходимо динамически изменять поведение script на основе кода на стороне сервера, рассмотрите asp:Literal
как метод.
Но если вы не делаете активность на стороне сервера из события Click на LinkButton, просто не кажется, что это очень важно использовать здесь.
Ответ 3
Вы можете сделать это тоже
...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');return false"...
И он останавливает обратную передачу кнопки
Ответ 4
Просто установите href= "#"
<asp:LinkButton ID="myLink" runat="server" href="#">Click Me</asp:LinkButton>
Ответ 5
Я думаю, вам следует исследовать с помощью элемента управления HyperLink. Это серверный элемент управления (так что вы можете управлять видимостью и таким кодом), но он опускает обычный якорь-якорь и не вызывает обратную передачу.
Ответ 6
В С# вы сделали бы что-то вроде этого:
MyButton.Attributes.Add("onclick", "put your javascript here including... return false;");
Ответ 7
вызов функции java script в событии onclick.
Ответ 8
Вы пытались использовать 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>
Ответ 9
Только что через несколько минут правильный способ сделать это - использовать
-
OnClientClick
-
Return False()
в качестве следующей примерной строки кода:
<asp:LinkButton ID="lbtnNext" runat="server" OnClientClick="findAllOccurences(); return false();" Visible="false"/>
Просто скопировал эту строку из моего рабочего кода.
Ответ 10
Возможно, вы также захотите вернуть функцию на стороне клиента 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: недействительным (0);" трюк.
Ответ 11
Кажется, никто не делает это так:
createEventLinkButton.Attributes.Add("onClick", " if (this.innerHTML == 'Please Wait') { return false; } else { this.innerHTML='Please Wait'; }");
Кажется, это единственный способ, который работает.
Ответ 12
Почему бы не использовать пустую панель обновления ajax и связать с ней событие clickbutton click? Таким образом обновится только панель обновления, что позволит избежать обратной передачи и позволит вам запустить javascript
Ответ 13
Вместо реализации атрибута:
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
Ответ 14
Что-то еще вы можете сделать, если вы хотите сохранить свою позицию прокрутки:
<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />
Ответ 15
В функции jquery ready вы можете сделать что-то вроде ниже -
var hrefcode = $('a[id*=linkbutton]').attr('href').split(':');
var onclickcode = "javascript: if`(Condition()) {" + hrefcode[1] + ";}";
$('a[id*=linkbutton]').attr('href', onclickcode);
Ответ 16
используйте ссылку html вместо ссылки asp, и вы можете использовать метку между ссылкой html для серверной части
Контроль