仅当匹配ID';时显示网格视图;s匹配

本文关键字:显示 网格 视图 匹配 ID | 更新日期: 2023-09-27 18:29:51

我已经对下拉列表中与Project_idBuilding_idflat_id匹配的选定值应用了筛选,然后网格视图应该显示其他方面而不是

现在我想要的是,如果所有id都匹配,那么只显示网格视图。

下面是我的代码:-

DataTable dt = new DataTable();
    dt.Columns.Add("PROJECT_ID");
    dt.Columns.Add("BUILDING_ID");
    dt.Columns.Add("FLAT_ID");
    DataView dView = new DataView(dt);
    dView.RowFilter = "PROJECT_ID = " + ddlProject.SelectedValue + " AND BUILDING_ID = " + ddlBuilding.SelectedValue + " AND FLAT_ID = " + ddlUnit.SelectedItem.Text;
    GrdBookingStatus.DataSource = dView.ToTable();
    GrdBookingStatus.DataBind();
    DisplayGrid();
    GrdBookingStatus.Visible = true;

当前显示ID是否不匹配

我应该检查什么情况?

DisplayGrid()

protected void DisplayGrid()
{
    OracleCommand cmd = new OracleCommand("SELECT pn.property_name, pn.building, cd.flat_id, ab.flat_status, ab.COMMENTS " +
                                           "FROM xxcus.xxacl_pn_projbuild_v pn INNER JOIN xxacl_pn_flat_status_his ab " +
                                           "ON pn.project_id = ab.project_id AND pn.building_id = ab.building_id " +
                                           "INNER JOIN xxacl_pn_flat_det_v cd ON cd.flat_id = ab.flat_id", ObjPriCon);
    DataTable dtfillgrid = new DataTable();
    OracleDataAdapter da = new OracleDataAdapter(cmd);
    da.Fill(dtfillgrid);
    GrdBookingStatus.DataSource = dtfillgrid;
    GrdBookingStatus.DataBind();
}

仅当匹配ID';时显示网格视图;s匹配

您的DisplayGrid()方法将恢复您的过滤器并显示所有数据。

DisplayGrid()方法中移动筛选器。

protected void DisplayGrid()
{
    OracleCommand cmd = new OracleCommand("SELECT pn.project_id AS project_id, pn.property_name, pn.building, pn.building_id AS building_id, cd.flat_id AS flat_id, ab.flat_status, ab.COMMENTS " +
                                           "FROM xxcus.xxacl_pn_projbuild_v pn INNER JOIN xxacl_pn_flat_status_his ab " +
                                           "ON pn.project_id = ab.project_id AND pn.building_id = ab.building_id " +
                                           "INNER JOIN xxacl_pn_flat_det_v cd ON cd.flat_id = ab.flat_id", ObjPriCon);
    DataTable dtfillgrid = new DataTable();
    OracleDataAdapter da = new OracleDataAdapter(cmd);
    da.Fill(dtfillgrid);
    DataView dView = new DataView(dtfillgrid);
    dView.RowFilter = "PROJECT_ID = " + ddlProject.SelectedValue + " AND  BUILDING_ID = " + ddlBuilding.SelectedValue + " AND FLAT_ID = " + ddlUnit.SelectedItem.Text;
    GrdBookingStatus.DataSource = dView.ToTable();
    GrdBookingStatus.DataBind();
    GrdBookingStatus.Visible = dView.ToTable().Rows.Count > 0;
}

我还修改了SELECT语句以返回pn.project_idpn.building_id

protected void Button1_Click(object sender, EventArgs e)
    {
        if (ddl.SelectedIndex > 0)
        {
            int count = 0;
            int selectedcheckbox = 0;
            pfPL.Month = lblMonthId.Value;
            pfPL.Year = lblYear.Value;
         
            DataTable dt = pfBL.GetEmployeeCode(pfCPL);
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (i < dt.Rows.Count - 1)
                    {
                        for (int k = 0; k < grd.Rows.Count; k++)
                        {
                            string grdcode;
                            Label lbl = (Label)grd.Rows[k].FindControl("lblCode");
                            grdcode = lbl.Text;
                            CheckBox chk = (CheckBox)grd.Rows[k].FindControl("chkone");
                            e;
                            dbcode = dt.Rows[i][0].ToString();
                            if (dbcode.Trim() == grdcode.Trim())
                            {
                                chk.Checked = true;
                                
                                count++;
                            }
                        }
                    }
                }
            }
            
        }
       
    }