在绑定到 gridview 之前从对象数据源中删除行

本文关键字:对象 数据源 删除行 绑定 gridview | 更新日期: 2023-09-27 18:36:20

我在ObjectDataSource中有一些数据,在将数据绑定到GridView之前,我想从DataSource中删除一些行。

这就是我正在尝试的:

protected void gvExitInterview_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            User employee = (User) e.Row.DataItem;
            if(//some condition here)
            {
                //do nothing
            }
            else
            {
                //delete the row
                this.gv.DeleteRow(e.Row.RowIndex);
                return;
            }
}
}

这些是我的删除方法:

protected void gvExitInterview_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
    }

    protected void gvExitInterview_RowDeleted(object sender, GridViewDeletedEventArgs e)
    {
        gv.DataBind();
    }

这是我的网格绑定:

private void BuildGrid(DateTime from, DateTime to)
    {
        this.objDS.TypeName = "EmployeeManagement";
        this.objDS.SelectMethod = "GetEmployees";
        this.objDS.SelectCountMethod = "GetEmployeesCount";
        this.objDS.SelectParameters.Clear();
        this.objDS.SelectParameters.Add("from", from.ToString());
        this.objDS.SelectParameters.Add("to", to.ToString());
        this.objDS.SelectParameters.Add("csvEntities", csv);
        this.objDS.SelectParameters.Add("sortExpression", ViewState["SortColumn"].ToString());
        this.gv.DataSource = objDS;
        this.gv.DataBind();
    }

这是行不通的,它不会从网格中过滤或删除任何数据。知道如何进行显式删除吗?

在绑定到 gridview 之前从对象数据源中删除行

我认为您需要在DataObjectClass中编写另一个SelectMethod,该Method获取一个参数,您可以使用该参数传递给过滤条件。因此,只需返回所需的行即可显示。