1. 程式人生 > >.NET dropdownlist控制元件繫結資料後,新增“全部”項,實現功能

.NET dropdownlist控制元件繫結資料後,新增“全部”項,實現功能

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();
  }