首先綁定數據。
現收集dropdownlist 的三種 databind 方法如下:
基礎數據綁定:用ListItem直接枚舉出來,適用于不需要修改的類型列表。
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="設計家園">設計家園</asp:ListItem>
<asp:ListItem Value="網頁設計">網頁設計</asp:ListItem>
<asp:ListItem Value="網絡編程">網絡編程</asp:ListItem>
<asp:ListItem Value="酷站欣賞">酷站欣賞</asp:ListItem>
</asp:DropDownList>
動態綁定方法一:動態綁定數據庫中的字段。
SqlConnection conn = system.Configuration.ConfigurationSettings.AppSettings["SqlConnection"].ToString();
string strSQL = "select * from CompanyType";
SqlDataAdapter ada = new SqlDataAdapter(strSQL, conn);
DataSet ds = new DataSet();
ada.Fill(ds, "CompanyType");
DropDownList1.DataSource = ds.Tables["CompanyType"].DefaultView;
DropDownList1.DataValueField = ds.Tables["CompanyType"].Columns[1].ColumnName;
DropDownList1.DataTextField = ds.Tables["CompanyType"].Columns[1].ColumnName;
DropDownList1.DataBind();
ds.Dispose();
//其中datavaluefield屬性是控件的一個關鍵屬性,cs頁面通過value值獲??;
//而datatextfield是顯示在視圖頁面的文本。
動態綁定方法二:利用DropDownList.Items.Add方法。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection conn = system.Configuration.ConfigurationSettings.AppSettings["SqlConnection"].ToString();
try
{
conn.Open();
this.DropDownList1.Items.Add("");
string strSQL = "select CompanyType from CompanyType";
SqlCommand com = new SqlCommand(strSQL, conn);
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
this.DropDownList1.Items.Add(dr["CompanyType"].ToString());
//或者
//DropDownList_name.Items.Add(new ListItem(TEXT, Value));
}
}
catch (Exception ex)
{
Response.Write("<scirpt>alert('" + ex.Message.ToString() + "')</script>");
}
finally
{
conn.Close();
}
}
}
綁定之后,我們來實現dropdownlist 的聯動功能。
要實現聯機變動,就要用到selectedindexchange 事件,記得要把AutoPostBack 的值設為 "true"
下面是一個最簡單的聯動效果。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList2.Items.Clear();
if (DropDownList1.Items[0].Selected)
{
DropDownList2.Items.Add("陸小鳳");
DropDownList2.Items.Add("楚留香");
}
else
{
DropDownList2.Items.Add("楊過");
DropDownList2.Items.Add("小龍女");
}
}
如果要實現無刷新聯動,自己去找度娘。網上有很多很好的文檔案例。
同理,如要下級也自動獲取對于的數據字段。
string id=dropdownlist1.SelectedValue;
可以然后根據此"id“去數據庫中讀出相應部分的數據
最后,是一個不錯的通過DataSet逐行讀數據的例子,業務系統“計劃中心”的下拉列表.
DataSet Ds = null;
string SqlStr = null;
SqlServer sqlserverDB = new SqlServer();
SqlStr = "select name,account from qdvc_usersimple";
Ds = sqlserverDB.DataSetRun(null, SqlStr, "qdvc_usersimple");
foreach (DataRow dataRow in Ds.Tables[0].Rows)
{
object[] itemArray = dataRow.ItemArray; //獲取dataRow的所有的單元格里的數據Array
// itemArray[0].ToString()是"name",itemArray[1].ToString()是"account"
DropDownList_name.Items.Add(new ListItem(itemArray[0].ToString(), itemArray[1].ToString()));
}