TextboxChanged-Ereignis nicht auslösen. im Update-Panel
Ich will Feuer das TextChanged event der TextBox innerhalb eines UpdatePanel, damit ich etwas tun kann mit der Eingabe des Benutzers.
Was ich mit oben kommen, so weit ist der folgende code:
<asp:GridView ID="gdBestellliste" AutoGenerateColumns="false" runat="server"
Width="100%" AllowPaging="false" GridLines="Horizontal" EnableModelValidation="true"
BorderColor="#6893CF" PagerStyle-BackColor="#F0F0F0" HeaderStyle-Height="20" ShowFooter="false">
<Columns>
<asp:TemplateField HeaderText="Amount to order" HeaderStyle-BorderStyle="None" HeaderStyle-HorizontalAlign="left" HeaderStyle-Width="70px"
ItemStyle-HorizontalAlign="left" ItemStyle-Wrap="false" ItemStyle-VerticalAlign="Middle" ItemStyle-CssClass="DataCell">
<ItemTemplate>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:TextBox runat="server" ID="tbProductLookup" OnTextChanged="tbProductLookup_Changed" AutoPostBack="true"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Mein problem hier ist, dass wenn ich eine Eingabe in das Textfeld, und danach wird das TextChanged-Ereignis versucht, Feuer bekomme ich eine Fehlermeldung vom Internet Explorer debugger:
Sys.WebForms.PageRequestManagerServerErrorException: GUID should contain 32 digits with 4 dashes
Es wird nie die codebehind-Methode, die ich definiert für das TextChanged-Ereignis.
Also was mache ich falsch? Jede Hilfe wird dankbar sein 🙂
Update:
Scheint wie ein Teil meines Problems war die Fehlinformation von meiner Seite. Ich davon ausgegangen, dass nur der benötigte Teil der code, der hinter geladen werden, die von der update-Panels, die ich jetzt gelernt habe, ist völlig falsch. Und deshalb irgendwo in meinem code, der sich hinter einem leeren GUID erstellt wurde, die letztlich führte zu der PageRequestManagerServerErrorException.
Gut, schließlich habe ich keine Fehlermeldung mehr, aber ich kann immer noch nicht verwenden das TextChanged-Ereignis.
Ich weiß nicht, ob dies helfen, aber ich entdeckte, dass, wenn ich zuerst etwas schreiben, was in meine TextBox und lassen es passiert nichts. Aber wenn ich etwas schreiben in das Textfeld ein und verlassen es wieder ein postback (nicht asynchron) Auftritt.
Was zur Hölle ist Los?
- ur-update-Modus setzt, aber u nicht definiert triggr für ihn
- Naja ich experimentierte auch ein wenig mit Trigger vor und ich konnte es nicht, mit Ihnen zu arbeiten entweder. Scheint, wie ich habe vergessen, um loszuwerden, diese hier. Es wäre schön, wenn jemand posten könnte ein Beispiel für eine Textbox in einem UpdatePanel innerhalb eines GridView, feuert die TextboxChanged Fall richtig
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst: danke an alle, die versucht haben mir zu helfen, mein problem zu lösen. Sie sind der einzige Grund, warum ich Liebe stackoverflow.
Mein problem scheint zu entstehen, in meinem code zurück, weil ich löste es, indem Sie kommentieren alles aus der code im hintergrund aus und nur die Umsetzung der grundlegenden Funktionalitäten (Einstellung und Bindung Datasource GridView, definieren Methode, die aufgerufen wird, durch TextChanged-Ereignis).
Für alle Menschen, die zufällig das gleiche problem wie ich und zufällig dies Lesen, möchte ich zeigen, die Dinge, die Sie haben, zu implementieren, wenn Sie wollen ein TextChanged-Ereignis eine update-panel in einem gridview:
ASPX-Datei:
Code Hinter:
Wenn zusammen gibt es eigentlich nur drei wichtige Teile, um diese Arbeit zu machen:
Hoffentlich kann jemand helfen aus dem gleichen Elend, das ich war viel zu lange 🙂
Update:
Ich habe gerade herausgefunden, was in der Codebehind verursacht die TextboxChanged Ereignis nicht auftreten. Wie ich schon in das update meiner Frage: alles, was der codebehind-Datei wird geladen, indem das Updatepanel. Aber da ich nur legen Sie die datasource gebunden und das gridview automatisch, wenn es kein postback, obwohl das gridview angezeigt wurde, die aufgrund des updatepanel-richtig, das gridview-Steuerelement nicht geladen und somit die Veranstaltung nicht stattfinden könnte. Noch können nicht legen Sie die datasource-bei postback fand ich folgende einfache Lösung:
Daher das Updatepanel ist sich bewusst, der die Gridview-Steuerelements, wenn es startet ein asynchrones postback.
fügen Sie die folgenden Zeilen nach dem
</ContentTemplate>
Ihre updatepanel nicht "ID"
gine eine ID, die Ihnen
<asp:UpdatePanel ID="MyID" runat="server">
Ende, wenn noch Sie nicht Feuer, es pls versuchen Sie schreiben innerhalb von page_load-EreignisUnd wenn Sie cant acces updatepanel
Schreiben dieses codes..ich hoffe, dass Ihnen helfen kann.