Avatar billede montago Praktikant
12. februar 2008 - 10:23 Der er 6 kommentarer og
1 løsning

Ajax Updatepanel - Submit onKeyUp uden page-refresh

efter at have lavet alting i hånden med HTML + JS (Ajax) vil jeg opgradere til at bruge AjaxToolkit i .NET sådan at den response jeg får tilbage er controller som kan bruges af .NET

Målet er at lave et <input type=text> som sender sin value afsted til serveren 500ms efter sidste tast er trykket. Scriptet til at måle tiden HAR jeg lavet...

Jeg er derfor begyndt at bruge Ajax UpdatePanel således:

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:TextBox runat="server" onkeyup="document.getElementById('ctl00_ContentPlaceHolder1_button').click()" ID="SeachText"></asp:TextBox>
        <asp:Button runat="server" ID="button" />
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="button" />
       
    </Triggers>
</asp:UpdatePanel>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>

--------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
      UpdatePanel1.ContentTemplateContainer.Controls.Add(new LiteralControl(SeachText.Text));
      SeachText.Focus();
}
--------------------------------------------

på onKeyUp bliver submit knappen click'et... og updatepanel2 får nyt indhol - uden page-refresh

mit problem er så, at hvis jeg kalder click() scriptet andre steder fra, opdatere hele siden (som alm post)...


hvad gør jeg ?
Avatar billede jokkejensen Novice
12. februar 2008 - 11:55 #1
Hvordan kalder du det script andre steder fra ?

/JJ
Avatar billede montago Praktikant
12. februar 2008 - 12:14 #2
fx fra adressebaren...

java script:document.getElementById('ctl00_ContentPlaceHolder1_button').click();

eller fra en <input type=text> som er placeret et vilkårligt sted på siden (har prøvet forskellige placeringer... inde og ude af updatepanel)
Avatar billede jokkejensen Novice
12. februar 2008 - 12:38 #3
Har updatepanel ikke en "refresh" lignende du kan kalde i stedet ?

Ham her gør det på samme måde som dig : http://forums.asp.net/p/1020902/1381316.aspx#1381316

Men skriver i en kommentar : "Of course, don't for get to add this Button to UpdatePanel's Triggers section."

Kender ikke til ajax.net men er button med id="button" tilføjet der?

/JJ
Avatar billede jokkejensen Novice
12. februar 2008 - 12:39 #4
Her er hvert fald en guide:

http://jeffzon.net/Blog/post/Refresh-the-UpdatePanel-using-JavaScript-code.aspx

(der er massere af links på google, har du søgt ?)

/JJ
Avatar billede montago Praktikant
12. februar 2008 - 18:57 #5
hey - takker kigger på dem i morgen på arbejdet ;)
Avatar billede montago Praktikant
13. februar 2008 - 14:42 #6
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <%= DateTime.Now %>
    </ContentTemplate>
</asp:UpdatePanel>
<asp:LinkButton ID="LinkButton1" runat="server" style="display:none;">
    LinkButton
</asp:LinkButton>

<script>
function raiseAsyncPostback()
{
    __doPostBack("<%= this.LinkButton1.UniqueID %>", "");
}
</sciprt>


fra den sidste guide, gør som jeg vill have...


send et svar
Avatar billede jokkejensen Novice
13. februar 2008 - 17:56 #7
Super.. takker !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester