【问题标题】:Why is my GridView Rows.Count zero in my RowDeleting and RowUpdating Events?为什么我的 GridView Rows.Count 在我的 RowDeleting 和 RowUpdating 事件中为零?
【发布时间】:2015-11-17 21:50:15
【问题描述】:

我有一个简单的 GridView 绑定到我的数据库中的一个表。 在我尝试删除或更新一行之前,一切看起来都很好。 我得到一个 System.ArgumentOutOfRangeException 因为“索引超出范围。必须是非负数并且小于集合的大小。” 在分析了我的调试输出后,我意识到我的 GridView 在我的 rowDeleting 和 rowUpdating 方法中有 0 行。这是其中一种方法的代码:

protected void gvTermene_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {

        System.Diagnostics.Debug.WriteLine(e.RowIndex); //result is 3, for example

        System.Diagnostics.Debug.WriteLine(gvTermene.Rows.Count.ToString()); //result is always 0
        GridViewRow gvRow = (GridViewRow)gvTermene.Rows[e.RowIndex];
        HiddenField hfID = (HiddenField)gvRow.FindControl("IDDoc");

        var connectionFromConfiguration = WebConfigurationManager.ConnectionStrings["MsSql Connection"];

        using (SqlConnection dbConnection = new SqlConnection(connectionFromConfiguration.ConnectionString))
        {
            try
            {
                dbConnection.Open();
                string sql = string.Format("DELETE FROM TermenDocumente WHERE IDDocument={0}", hfID.Value);
                SqlCommand command = new SqlCommand(sql, dbConnection);
                command.ExecuteNonQuery();
                gvTermene.EditIndex = -1;
                bindDataToGridView();
            }
            catch (Exception exc)
            {
                ltError.Text = exc.Message;
            }
            finally
            {
                dbConnection.Dispose();
            }
        }

    }         

可能是什么问题?

提前感谢您!

【问题讨论】:

  • 你能找到DataSource.Deleting而不是GridView.RowDeleting吗?

标签: c# asp.net gridview webforms count


【解决方案1】:

我在这里的第一个猜测是,当您输入这个名为 gvTermene_RowDeleting 的事件时,您正在更改页面的视图。此事件是否在您的网页上进行回发。如果是这样,那么您可能会丢失从您放置在其他地方的初始 SELECT 语句中提取的本地存储数据。我相信你最好的选择是尝试将给你 gvTermene 的语句放入你的 page_Load 事件中。

您可以通过调用页面加载的其他函数来获得创意,这些函数将为您的搜索条件等提供过滤器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-02
    • 2012-08-15
    • 2012-01-11
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多