2013-04-07 3 views
1

Im using ASP.NET LinkButton. У меня есть LinkButton, который вызывает код позади от OnClick:Disable Postback для Linkbutton

на ASPX:

<asp:LinkButton ID="LinkTest" runat="server" onclick="LinkTest_Click" OnClientClick="return false;" >LinkButton</asp:LinkButton> 

на aspx.cs:

protected void LinkTest_Click(object sender, EventArgs e) 
    { 
     //code here 
    } 

Как вы можете видеть, что я поставил OnClientClick="return false;" так, что она не будет сделать обратную передачу. Откат не происходит. Но код позади не уволен. Я хочу, чтобы код был включен, и я не хочу возвращать его, когда нажимается кнопка ссылки.

Как я могу это сделать?

Спасибо.

+0

Возможно, вы можете предоставить более подробную информацию о проблеме вы пытаясь решить за пределами LinkButton, поэтому я могу предоставить альтернативное решение. Поскольку LinkButton - это серверный элемент управления, вы не можете ожидать, что обработчик на стороне сервера будет вызван, если клиент настроен, чтобы предотвратить отправку сообщения на сервер (PostBack). Основываясь на вашем коде, он делает то, что я ожидаю от него. – Scott

+1

Вы делаете конфликтующие вещи, вы блокируете обратную передачу, но хотите щелкнуть по обратной ссылке. –

+0

Когда нажата кнопка ссылки, я хочу, чтобы код был выполнен, но я не хочу обновления на странице. Как я могу это сделать? – trek

ответ

2

Удалить атрибут OnclientClick кнопки со стрелкой. Попробуйте использовать UpdatePanel как:

<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="LinkTest" EventName="Click" /> 
    </Triggers> 
    <ContentTemplate> 
      <asp:label id="Label1" runat="server" Text="Initial Label" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Кроме того, вам нужно будет добавить ScriptManager на вашей странице.

+0

. Я пытаюсь использовать его с помощью панели обновления. В коде позади метода LinkTest_Click я поместил некоторый текст на метку: Label1.Text = "Test" ;. Этот код выполняется, но на странице текст ярлыка вообще не меняется ..... Как я могу это решить? – trek

+0

Поместите надпись метки внутри части «ContentTemplate» (ответ будет обновлен) – mshsayem

1

Добавьте LinkButton внутри UpdatePanel, удалить OnClientClick атрибут LinkButton:

Страница:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <asp:Label ID="lblName" runat="server" Text="Old Value"></asp:Label> 
      <br /> 
      <asp:LinkButton ID="lnkbtChange" runat="server" OnClick="lnkbtChange_Click">Change</asp:LinkButton> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

CodeBehind:

protected void lnkbtChange_Click(object sender, EventArgs e) 
{ 
    lblName.Text = "New value"; 
} 
+0

Im пытается с помощью панели обновления. В коде позади метода LinkTest_Click я поместил некоторый текст на метку: Label1.Text = "Test" ;. Этот код выполняется, но на странице текст ярлыка вообще не меняется ..... Как я могу это решить? – trek

+1

вы должны поместить ярлык внутри обновления, тогда он будет работать как ожидалось –

Смежные вопросы