У меня есть gridview (ASP.net) внутри панели обновления. У меня также есть кнопка «Сохранить», поэтому, когда я нажимаю «Сохранить», она перебирает все строки представления сетки и передает данные хранимой процедуре для обновления каждой строки. Это было слишком медленно, так как иногда я обновлял базу данных, хотя изменений не происходило.
Я решил добавить поле в свой вид сетки следующим образом:
<asp:TemplateField>
<ItemTemplate>
<input type="hidden" id="hdnIsChanged" runat="server" />
</ItemTemplate>
</asp:TemplateField>
То есть я добавил скрытое поле, и идея заключалась в том, что если текстовое поле или значение раскрывающегося списка изменится в моей строке gridview, я обновлю это скрытое поле значением 1. Поэтому я добавил это к моему событию 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")
Идея заключалась в том, чтобы при изменении он установил значение 1. Затем в моей кнопке сохранения я сделал бы что-то для этого:
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...
Проблема, с которой я сталкиваюсь, заключается в том, что при отладке я вижу, что hiddenField.Value
всегда равно 1, независимо от того, изменяю ли я значение в текстовом поле или нет. Я нашел этот похожий пост: http://forums.asp.net/t/1592125.aspx /1а>
Кажется, это работает для этого парня, но для меня значение всегда равно 1...
hiddenfield
всегда равно1
, даже если я не меняю значение своего текстового поля? - person oJM86o   schedule 11.07.2011