Beste tweakers,
Het probleem
Ik heb een web applicatie waarbij op de pagina elke tekstbox ATLAS- enabled werkt (er gebeuren server site dingen bij ontextchanged). Dit werkt erg mooi en is voor deze applicatie erg praktisch. Nadeel is alleen dat alle tekstboxen in het updatepanel na verlies van de focus (/op de textchanged) de tab niet doorgeven (met andere woorden, de volgende tekstbox krijgt op tab geen focus).
Ook irritant, als ik een waarde aanpas en ik klik met de muis op een texstbox ergens anders op het updatepanel, dan reageert deze niet bij de eerste klik.
Stukje voorbeeldcode (aspx)
Stukje voorbeeldcode (code behind)
In bovenstaand voorbeeld kan je na het wijzigen van tekstbox1 dus niet met tab naar tekstbox 2. Ook als je textbox1 wijzigt en dan met de muis op textbox2 klikt gaat dit de eerste keer niet goed.
Wat heb ik al gedaan / geprobeerd
Natuurlijk met alle properties gespeeld van de updatepanel. Ik denk dat die geen verschil uit kunnen maken. Daarna heb ik een eigen behavior geschreven zelf eerst een blur en focus uitvoert, wanneer de javascript zelf een tab naar het volgende control uitvoert. Dit is leuk als iedereen altijd alleen op tab zou navigeren, maar vangt het probleem met muisklikjes niet af.
Toen nog hard doorgezocht. Er blijken meer mensen het probleem te hebben, maar niemand die echt een oplossing heeft gevonden. Raar, want volgens mij heeft AJAX dit probleem niet.
Iemand enig idee?
Het probleem
Ik heb een web applicatie waarbij op de pagina elke tekstbox ATLAS- enabled werkt (er gebeuren server site dingen bij ontextchanged). Dit werkt erg mooi en is voor deze applicatie erg praktisch. Nadeel is alleen dat alle tekstboxen in het updatepanel na verlies van de focus (/op de textchanged) de tab niet doorgeven (met andere woorden, de volgende tekstbox krijgt op tab geen focus).
Ook irritant, als ik een waarde aanpas en ik klik met de muis op een texstbox ergens anders op het updatepanel, dan reageert deze niet bij de eerste klik.
Stukje voorbeeldcode (aspx)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<atlas:scriptmanager id="ScriptManager" runat="server"
enablepartialrendering="true" />
<form id="form1" runat="server">
<div>
<atlas:UpdatePanel ID="UpdatePanelGrid" mode=always runat=server rendermode=Block EnableViewState=true>
<Triggers>
<atlas:ControlEventTrigger ControlID="TextBoxEen" EventName="TextChanged" />
<atlas:ControlEventTrigger ControlID="TextBoxTwee" EventName="TextChanged" />
</Triggers>
<ContentTemplate>
<asp:Label runat=server ID="Labeltje"></asp:Label><br />
<p></p>
<asp:TextBox runat=server ID="TextBoxEen" AutoPostBack=true OnTextChanged="TextBoxEen_TextChanged"></asp:TextBox>
<asp:TextBox runat=server ID="TextBoxTwee" AutoPostBack=true OnTextChanged="TextBoxTwee_TextChanged"></asp:TextBox>
</ContentTemplate>
</atlas:UpdatePanel>
<p></p>
Wat hier staat staat buiten het updatepanel
<asp:TextBox runat=server ID="TextBoxDrie" AutoPostBack="True" OnTextChanged="TextBoxDrie_TextChanged"></asp:TextBox>
</div>
</form>
</body>
</html> |
Stukje voorbeeldcode (code behind)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default2 : System.Web.UI.Page
{
protected void TextBoxEen_TextChanged(object sender, EventArgs e)
{
Labeltje.Text = "1: " + TextBoxEen.Text;
}
protected void TextBoxTwee_TextChanged(object sender, EventArgs e)
{
Labeltje.Text = "2: " + TextBoxTwee.Text;
}
protected void TextBoxDrie_TextChanged(object sender, EventArgs e)
{
Labeltje.Text = "3: " + TextBoxDrie.Text;
}
} |
In bovenstaand voorbeeld kan je na het wijzigen van tekstbox1 dus niet met tab naar tekstbox 2. Ook als je textbox1 wijzigt en dan met de muis op textbox2 klikt gaat dit de eerste keer niet goed.
Wat heb ik al gedaan / geprobeerd
Natuurlijk met alle properties gespeeld van de updatepanel. Ik denk dat die geen verschil uit kunnen maken. Daarna heb ik een eigen behavior geschreven zelf eerst een blur en focus uitvoert, wanneer de javascript zelf een tab naar het volgende control uitvoert. Dit is leuk als iedereen altijd alleen op tab zou navigeren, maar vangt het probleem met muisklikjes niet af.
Toen nog hard doorgezocht. Er blijken meer mensen het probleem te hebben, maar niemand die echt een oplossing heeft gevonden. Raar, want volgens mij heeft AJAX dit probleem niet.
Iemand enig idee?
[ Voor 13% gewijzigd door Verwijderd op 17-07-2006 14:26 ]