【问题标题】:'object' does not contain a definition for 'NewRow' and no extension method 'NewRow' accepting a first argument of type 'object' could be found“object”不包含“NewRow”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“NewRow”
【发布时间】:2017-10-05 06:06:57
【问题描述】:

我在 Rows 中遇到错误。错误是 Viewstate["dt"] 用作对象并且 Rows 不包含对象的定义

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    string Row = e.RowIndex.ToString();        
    DataRow dtrow = default(DataRow);
    dtrow = ViewState["dt"].Rows[Row];
    ViewState["dt"].Rows.Remove(dtrow);
    GridView1.DataSource = ViewState["dt"];
    GridView1.DataBind();
    CalculateItemNetAmount();
}

【问题讨论】:

  • 这是错误的代码吗?我没有看到给NewRow的电话

标签: c#


【解决方案1】:

您应该首先将您的ViewState["dt"] 转换为DataTable

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    string Row = e.RowIndex.ToString();        
    DataRow dtrow = default(DataRow);
    var dataTable = (DataTable)ViewState["dt"];
    dtrow = dataTable .Rows[Row];
    dataTable.Rows.Remove(dtrow);
    GridView1.DataSource = dataTable;
    GridView1.DataBind();
    CalculateItemNetAmount();
}

【讨论】:

  • @dibyanshuaryan 欢迎。另外,请不要忘记标记您问题的正确答案。
【解决方案2】:

那是因为 ViewState["dt"] 的类型是 object。您需要将其转换为正确的类型,在您的情况下为DataTable,然后才能访问它的Rows 属性,例如

((DataTable)ViewState["dt"]).Rows[Row];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    相关资源
    最近更新 更多