.NET dropdownlist控制元件繫結資料後,新增“全部”項,實現功能
阿新 • • 發佈:2018-11-02
DropDownList在從資料庫中得到資料來源繫結後,計劃為其新增一個"全部"或"不限"之類的項,新增方法現知的有兩種:
1:在指令碼中直接新增:<asp:ListItem Value="0">全部</asp:ListItem>,然後在DropDownList中新增一個屬性: AppendDataBoundItems="True" ,如下面的程式碼所示:
<asp:DropDownList ID="ddlDepartment" runat="server" AutoPostBack="true"
onselectedindexchanged="ddlDepartment_SelectedIndexChanged" DataTextField="DeptName"
AppendDataBoundItems="True" DataValueField="DeptID">
<asp:ListItem Value="0">全部</asp:ListItem>
</asp:DropDownList>
2:在後臺程式碼中通過CS檔案新增:
ddlDepartment.Items.Insert(0, new ListItem("--所有--", "0"));
******************************************
新增以後,在使用的時候,可以這樣寫:
If(ddlDepartment.SelectedValue!="0")
{
deptId=ddlDepartment.SelectedValue;
}
--SQL語句的寫法:WHERE @deptId IS NULL OR @deptId="" OR [email protected]
3、我的實踐
SQLHelper sqlh = new SQLHelper();
protected void Page_Load(object sender, EventArgs e)
{
//大棚下拉列表資料填充繫結
if (!IsPostBack)
{
string dpsql = "SELECT * FROM [GHInfo]";
DataTable dpdt = new DataTable();
dpdt = sqlh.GetDataTable(dpsql);
dapeng.DataSource = dpdt;
dapeng.DataValueField = dpdt.Columns[0].ToString();
dapeng.DataTextField = dpdt.Columns[2].ToString();
dapeng.DataBind();
ListItem li = new ListItem("---檢視全部---","00");
dapeng.Items.Insert(0, li );
string sql = "SELECT t1.ID, t2.UserName, t1.Address, t3.Name, t1.Tem, t1.Hum, t1.Co2 FROM GHInfo AS t1 LEFT OUTER JOIN UserInfo AS t2 ON t1.OwnerID = t2.ID LEFT OUTER JOIN Plants AS t3 ON t1.PlantID = t3.ID ";
DataTable dt = sqlh.GetDataTable(sql);
DataList1.DataSource = dt;
DataList1.DataBind();
}
}
protected void dapeng_SelectedIndexChanged(object sender, EventArgs e)
{
string id = dapeng.SelectedValue.ToString();
string sql;
Label1.Text = id;
if (id != "00")
{
sql = "SELECT t1.ID, t2.UserName, t1.Address, t3.Name, t1.Tem, t1.Hum, t1.Co2 FROM GHInfo AS t1 LEFT OUTER JOIN UserInfo AS t2 ON t1.OwnerID = t2.ID LEFT OUTER JOIN Plants AS t3 ON t1.PlantID = t3.ID WHERE(t1.ID = '" + id + "')";
}
else
{
sql = "SELECT t1.ID, t2.UserName, t1.Address, t3.Name, t1.Tem, t1.Hum, t1.Co2 FROM GHInfo AS t1 LEFT OUTER JOIN UserInfo AS t2 ON t1.OwnerID = t2.ID LEFT OUTER JOIN Plants AS t3 ON t1.PlantID = t3.ID";
}
DataTable dt = sqlh.GetDataTable(sql);
DataList1.DataSource = dt;
DataList1.DataBind();
}