J'ai un gridview (ASP.net) à l'intérieur d'un panneau de mise à jour.J'ai aussi un bouton "Enregistrer" de sorte que lorsque je clique sur "Enregistrer" il parcourt toutes les lignes d'une vue de grille et passe les données à une procédure stockée pour mettre à jour chaque ligne, ce qui était trop lent car parfois je mettrais à jour la base de données même si aucun changement ne se produisait. ajouter un champ dans mon gridview comme ceci:mise à jour gridview ligne seulement quand changé, javascript ne change pas de valeur :(
<asp:TemplateField>
<ItemTemplate>
<input type="hidden" id="hdnIsChanged" runat="server" />
</ItemTemplate>
</asp:TemplateField>
C'est, j'ai ajouté un champ caché et l'idée était que si une zone de texte ou menu déroulant valeur a changé dans mon gridview ligne je mettre à jour ce champ caché avec la valeur 1. Je a ajouté à mon événement gvLineItems_RowDataBound
:
Dim hiddenField As HtmlInputHidden = DirectCast(e.Row.FindControl("hdnIsChanged"), HtmlInputHidden)
'the line item date
Dim tLID As TextBox = CType(e.Row.FindControl("txtLineItemDate"), TextBox)
tLID.Attributes.Add("onchange", "document.getElementById('" + hiddenField.ClientID + "').value=1")
'the amount field
Dim ta As TextBox = CType(e.Row.FindControl("txtAmount"), TextBox)
ta.Attributes.Add("onchange", "document.getElementById('" + hiddenField.ClientID + "').value=1")
L'idée était de telle sorte que onchange il fixerait la valeur 1. Ensuite, dans mon bouton Enregistrer que je ferais quelque chose à cet effet:
For Each Row As GridViewRow In Me.gvLineItems.Rows
Dim hiddenField As HtmlInputHidden = DirectCast(Row.FindControl("hdnIsChanged"), HtmlInputHidden)
If (hiddenField.Value = "1") Then
'perform the update...
la question que j'ai est quand je vois que je debug hiddenField.Value
est toujours 1 si je change une valeur dans la zone de texte ou non. J'ai trouvé ce poste similaire: http://forums.asp.net/t/1592125.aspx/1
Il semble fonctionner pour ce gars-là, mais pour moi la valeur est toujours 1 ...
Des erreurs javascript ou d'autres informations de débogage? – Dave
@Dave - Comment afficher les erreurs JS dans IE9. Dans IE8, ils étaient dans la barre d'état ... – oJM86o
Je n'utilise pas encore IE9. Peut-être frapper f12 et voir si elle apporte des outils de développement? – Dave