Je suis vraiment nouveau sur asp.net et j'ai quelques problèmes à résoudre. J'ai de l'expérience en programmation, mais ce n'est pas asp.net. Cependant, j'ai été capable de suivre le code assez pour faire d'autres changements dans le code pour résoudre d'autres problèmes.Problème avec asp.net C# focus, page_load
La première est la suivante:
Je travaille avec une forme qui a une méthode de quantité de calcul qui est appelée lorsque l'utilisateur entre une valeur dans une zone de texte montant. La même méthode est appelée lorsque le contrôle suivant, le nombre de paiements, a une valeur.
Ainsi, dans les deux contrôles:
onTextChanged="ctrlName_textChanged"
Puis dans le code derrière, la méthode TextChanged fait:
calculateAmount();
Le problème est après le montant est calculé et le rendement, l'accent semble se réinitialiser et l'utilisateur doit tabuler tout le chemin à travers le formulaire à l'endroit où ils étaient.
Les zones de texte en question sont dans un panneau qui commence par être masqué et rendu visible de façon conditionnelle. Toutes mes excuses si je n'ai pas utilisé la terminologie .net appropriée.
Il semble que le même problème puisse causer mon deuxième problème. Lorsque l'utilisateur tape un montant, puis des onglets et ajoute rapidement le nombre de paiements, vous pouvez voir le montant calculé correctement et affiche très rapidement le total approprié dans la zone de texte montant total. Cependant, même si cela se produit pendant un laps de temps très court, l'ordre de tabulation est de nouveau réinitialisé ainsi que la valeur du montant total.
J'ai examiné différentes méthodes pour essayer de résoudre le problème de mise au point.
Dans la méthode TextChanged, j'ai essayé d'utiliser quelque chose comme:
Session["myval"] = "someval";
ensuite essayé de vérifier contre que Page_Load avec quelque chose comme: if (! Session [ "myval"] = null) { cette .NextControl_Name.Focus(); }
mais cela n'a jamais fonctionné correctement.
J'ai essayé aussi de définir un cookie dans cette même méthode TextChanged en utilisant quelque chose comme ceci:
Response.Cookies["myval"].Value = "somevalue";
ensuite essayé de vérifier que dans Page_Load en utilisant quelque chose comme les précédentes si le bloc ci-dessus, mais en utilisant Request.Cookies [ » myval "] comme source.
Existe-t-il une bonne référence avec des exemples de code vraiment clairs que je peux examiner pour ce type de mise en œuvre?
Nous vous remercions à l'avance,
C.
Excellente réponse, beaucoup et beaucoup de gens ont cet obstacle en commençant par ASP.NET, ils oublient le protocole sous-jacent est apatride. Juste l'autre jour, j'ai dû enseigner à un programmeur de 10 ans + cette chose exacte. Je pense qu'une partie du blâme réside dans la façon dont ASP essaie de cacher les couches sous-jacentes ... –
Merci Eddy ... oui J'ai eu du mal avec .NET pendant un moment avant que je ne m'en rende compte. Une fois que vous "obtenez" il est assez puissant mais je suis d'accord que je pense qu'ils essaient de cacher à la plupart des engrenages sous-jacents qu'il obtient beaucoup de nouvelles personnes en difficulté –