仅当匹配ID';时显示网格视图;s匹配
本文关键字:显示 网格 视图 匹配 ID | 更新日期: 2023-09-27 18:29:51
我已经对下拉列表中与Project_id
、Building_id
和flat_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();
}
您的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_id
和pn.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++;
}
}
}
}
}
}
}