【问题标题】:Checking a column value when updating a gridview asp.net更新gridview asp.net时检查列值
【发布时间】:2014-05-15 18:24:52
【问题描述】:

我正在尝试对列进行一些错误处理,以查看它是否不等于某个单词。我想知道我是否在 RowUpdating 事件或 RowUpdated 事件上执行此操作。我一直在尝试在 rowupdating 事件中执行此操作,但到目前为止还没有任何运气。这是代码。

      TableCell cell = GridView1.Rows[e.RowIndex].Cells[3];

        if(cell.Text == "hello")
        {
            e.Cancel = true;
        }
        lblError.Text = "hello" + cell.Text;

我假设 .Cells 之后括号内的 3 是我想要的列索引。如果我使用 .Cells[1] ,它将在标签中显示主键 no ,但如果我尝试 2 或 3 ,似乎没有任何东西放在单元格变量中。 我的表有四列,ID、Name、Price 和 CategoryID。任何帮助表示赞赏。

【问题讨论】:

  • RowUpdating 在行实际更新之前。 RowUpdated 发生在之后。尝试在代码中设置断点并查看 GridView1 中的值。
  • 它似乎只返回第一列,即主键,因为它是只读的。我更新数据的文本框不被视为 GridView 的值
  • 你设置断点看GridView1的属性了吗?您可以看到当前内容,这应该可以告诉您一些有关您的问题的信息。

标签: c# asp.net gridview


【解决方案1】:

如果您尝试获取输入框的值,则必须找到如下控件:

GridViewRow row = GridView1.Rows[e.RowIndex];
string price = ((TextBox)(row.Cells[3].Controls[0])).Text;

您还可以检查 e.NewValues。

仅供参考:如果您想在满足特定条件时取消活动,则必须设置 e.Cancel=true。

检查RowUpdatingEvent ref

【讨论】:

    猜你喜欢
    • 2014-07-06
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 2011-10-05
    • 1970-01-01
    相关资源
    最近更新 更多