Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > ajax не работает с аспшным контролом кнопки


Автор: devW 20.7.2009, 15:37
Сделал простой пример на аяксе:

добавление текста в текстбокс без перезагрузки страницы

Код

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajax_sample.aspx.cs" Inherits="ajax_sample" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

    <script type="text/javascript">

        function clickFunc(text) {
            ajax_sample.Click(text,calbackClick);
        }

        function calbackClick(responce) {
            document.getElementById("<%= tbText.ClientID %>").value = responce.value;
                    }
    
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="txi" type="button" runat="server" value="Hello" onclick="clickFunc(this.value)" />
        <asp:TextBox ID="tbText" runat="server" ></asp:TextBox>
      <asp:Button ID="Button1"  runat="server" Text="World"  OnClientClick="clickFunc(this.value)"  />
        
    </div>
    </form>
</body>
</html>



Код

public partial class ajax_sample : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Ajax.Utility.RegisterTypeForAjax(typeof(ajax_sample));

        
    }

    [Ajax.AjaxMethod()]
    public string Click(string text)
    {
        return text;
    }
}



почему-то работает не корректно с аспшным контролом кнопки, при нажатии сначало добавляется а потом быстро обнуляется, заходит в page_load
а с обычным   <input нормально работает




Автор: vladsch 21.7.2009, 17:50
Добавь
Код

return false;


к OnClientClick

Автор: devW 22.7.2009, 10:29
Цитата(vladsch @  21.7.2009,  17:50 Найти цитируемый пост)
Добавь
 код Javascript
1:return false;


к OnClientClick 

Так если OnClientClick ничего не будет вызывать то кнопка не будет работать ...

Автор: vladsch 23.7.2009, 15:45
Почему ничего не будет вызывать? Он будет вызывать твой "clickFunc". Вот после него и добавь "return false;", чтобы постбек предотвратить

Автор: devW 24.7.2009, 13:02
Цитата(vladsch @ 23.7.2009,  15:45)
Почему ничего не будет вызывать? Он будет вызывать твой "clickFunc". Вот после него и добавь "return false;", чтобы постбек предотвратить

спасибо! точно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)