因为在Gridview、Repeater 在后台查询不到数据时,前台不会显示表头信息,这样给人感觉很突兀,所以下面的方法是讲述如何显示表头及提示信息【暂时没有您想要的信息!】。
效果图如下:
实现方法:
private void Fill()
{
string IdName = txtContions.Value.Trim();
if (CheckBox1.Checked) //勾选复选框
{
DataView view = new DataView();
DataTable LDST_PrdClassData = (DataTable)ViewState["provDS"];
view.Table = LDST_PrdClassData;
view.RowFilter = "itemno like '%" + IdName + "%' or itemname like '%" + IdName + "%' or descript like '%" + IdName + "%' or def_str7 like '%" + IdName + "%' ";
if (view.Count != 0) //表示有数据
{
this.gv_itemdate.DataSource = view;
this.gv_itemdate.DataBind();
}
else
{
DataTable dt = new DataTable("Table1");
dt.Columns.Add(new DataColumn("itemno"));
dt.Columns.Add(new DataColumn("itemname"));
dt.Columns.Add(new DataColumn("regionname"));
dt.Columns.Add(new DataColumn("descript"));
DataRow drow = dt.NewRow();
drow["itemname"] = "暂时没有您想要的信息!";
dt.Rows.Add(drow);
gv_itemdate.DataSource = dt;
gv_itemdate.DataBind();
}
}
else
{
try
{
ReturnObject<DataTable> LOBJ_ReturnObject = FillPage.SelectProcedureForDT("proc_bill_searchItem", "'" + IdName + "','" + Session["ocodeno"] + "'", "NG2011"); //此方法是自己封装的查询方法,只要换成自己的查询方法即可
if (LOBJ_ReturnObject.ReturnSuccess) //查询出数据
{
if (LOBJ_ReturnObject.ReturnData != null)
{
DataTable LDAT_ProData = LOBJ_ReturnObject.ReturnData;
ViewState["provDS"] = LDAT_ProData;
gv_itemdate.DataSource = LDAT_ProData;
gv_itemdate.DataBind();
}
}
else //没有查询出数据
{
DataTable dt = new DataTable("Table1"); //创建一个DataTable
dt.Columns.Add(new DataColumn("itemno")); //向DataTable中添加列,这些列是根据页面中具体有那些列决定的
dt.Columns.Add(new DataColumn("itemname"));
dt.Columns.Add(new DataColumn("regionname"));
dt.Columns.Add(new DataColumn("descript"));
DataRow drow = dt.NewRow();
drow["itemname"] = "暂时没有您想要的信息!"; //显示提示信息
dt.Rows.Add(drow);
gv_itemdate.DataSource = dt;
gv_itemdate.DataBind();
}
}
catch (Exception ex)
{
throw ex;
}
}
}