【问题标题】:gridview row update only when changed, javascript not changing value :(gridview 行仅在更改时更新,javascript 不更改值:(
【发布时间】:2011-07-11 15:29:02
【问题描述】:

我在更新面板中有一个 gridview (ASP.net)。我还有一个“保存”按钮 这样当我单击“保存”时,它会遍历网格视图的所有行并将数据传递给存储过程以更新每一行。这太慢了,因为有时即使没有发生更改,我也会更新数据库。

我决定在我的 gridview 中添加一个字段,如下所示:

<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")

这个想法是让 onchange 将值设置为 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...

【问题讨论】:

  • 任何 javascript 错误或其他调试信息?
  • @Dave - 如何在 IE9 中显示 JS 错误。在 IE8 中,它们曾经在状态栏中...
  • 我还没有使用 IE9。也许按 f12 看看它是否会调出开发者工具?
  • @Dave - 在我最初的帖子中查看上面的更新...
  • @Anyone - 请任何人知道为什么hiddenfield 的值总是1,即使我不更改文本框的值?

标签: javascript asp.net vb.net hidden-field


【解决方案1】:

getElementById,最后一个 D 小写。

【讨论】:

  • 这绝对是修复的一部分,但问题是隐藏字段的值始终为 1。无论我是否对该字段进行更改:(...跨度>
【解决方案2】:

它现在突然工作了,似乎与日历扩展器(ajax)关联的任何文本框都失败了。所以我摆脱了这一领域的行数据绑定,它现在可以工作了......奇怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多