一:DropDownList
1.1 DropDownList綁定數(shù)據(jù)
1.1.1 DropDownList 固定綁定
這種方式適合那些已經(jīng)固定的數(shù)據(jù)綁定到DropDownList上。
例
<asp:DropDownList runat="server" ID="ddlArea" Width="120px" >
<asp:Listitem value="0">選擇性別</asp:Listitem>
<asp:Listitem value="1">男</asp:Listitem>
<asp:Listitem value="2">女</asp:Listitem>
</asp:DropDownList>
1.1.2 DropDownList 動(dòng)態(tài)綁定
前臺(tái):
后臺(tái):兩種方法:(注意,每次綁定都要清除一下原來(lái)的記錄,例:ddlArea.Items.Clear();)
第一種:
SqlConnection conn = new SqlConnection("server=.;uid=sa;database=pubs");
SqlDataAdapter dap = new SqlDataAdapter("select * from jobs", conn);
DataTable dt = new DataTable();
dap.Fill(dt);
DropDownList1.Items.Clear();
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "job_desc";
DropDownList1.DataValueField = "job_id";
DropDownList1.DataBind();
DropDownList1.Items.Insert(0, new ListItem("選擇數(shù)據(jù)", "隨機(jī)綁定"));//插入默認(rèn)項(xiàng),此舉必須放到數(shù)據(jù)綁定之后效果:
第二種:
SqlConnection conn = new SqlConnection("server=.;uid=sa;database=pubs");
SqlDataAdapter dap = new SqlDataAdapter("select * from jobs", conn);
DataTable dt = new DataTable();
dap.Fill(dt);
if (dt.Rows.Count != 0)
{
DropDownList1.Items.Clear();
for (int i = 0; i < dt.Rows.Count; i++)
{
DropDownList1.Items.Add(new ListItem(dt.Rows[i]["顯示值"].ToString(), dt.Rows[i]["usbkey"].ToString()));
}
DropDownList1.Items.Insert(0, "選擇網(wǎng)吧");
DropDownList1.Items[0].Value = "0"; 或
// DropDownList1.Items.Insert(0, new ListItem("選擇數(shù)據(jù)", "隨機(jī)綁定"));//插入默認(rèn)項(xiàng),此舉必須放到數(shù)據(jù)綁定之
}
else
{
DropDownList1.Items.Insert(0, "無(wú)網(wǎng)吧記錄");
DropDownList1.Items[0].Value = "0";
}
二:DropDownList1的取值問(wèn)題:
2.1 取DropDownList1的索引值,也就是選擇 value 值<asp:Listitem value="1">男</asp:Listitem> 取1
.net中 DropDownList1.SelectedValue.ToString()
javascirpt var ddl1=document.getElementByIdx_x("DropDownList1").selectedIndex;
2.2 取DropDownList1的選項(xiàng),也就是選擇item值<asp:Listitem value="1">男</asp:Listitem> 取 男
.net 中DropDownList1.SelectedItem.ToString();
javascript document.getElementByIdx_x("DropDownList1").options[document.getElement("selectID").selectedIndex].value
三:DropDownList1事件問(wèn)題:
重點(diǎn):使用OnTextChanged,OnSelectedIndexChanged事件時(shí),必須設(shè)置
<asp:DropDownList runat="server" OnTextChanged="DropDownList1_TextChanged"OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged1">
OnTextChanged,OnSelectedIndexChanged這兩個(gè)事件具體有什么區(qū)別,我也沒(méi)測(cè)試出來(lái),只知道OnSelectedIndexChanged這個(gè)事件要比OnTextChanged執(zhí)行的早,也就是如果這兩個(gè)事件都存在,會(huì)首先執(zhí)行OnSelectedIndexChanged這個(gè)事件,然后才執(zhí)行OnTextChanged.
四:如何避免DropDownList下拉框中的值重復(fù)添加?
AppendDataBoundItems是否填加重復(fù)值。真為添加,假為不填加
原因:DropDownList控件AppendDataBoundItems屬性設(shè)置為"True"了的,改為False即可。
例如:如果專(zhuān)業(yè)后的DropDownList控件AppendDataBoundItems屬性設(shè)置為"True",那么選擇院系后專(zhuān)業(yè)里的值會(huì)不斷添加。
五:區(qū)別
depart_ddl.Items.Insert(0,new ListItem("不選該項(xiàng)","0")); 這是在首項(xiàng)添加數(shù)據(jù)。
Items.Add是在最后添加
DropDownList1.Items.Add(new ListItem("Text","value")); 是在最后添加
DropDownList1.Items.Insert(Index,new ListItem("Text","value"));這是在首項(xiàng)添加數(shù)據(jù)。
六:從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),并綁定到DropDownList中
if (ds.Tables[0].Rows[0]["State"].ToString ()=="True")
{
DropDownListState.Items.FindByValue("1").Selected =true;
}
else
{
DropDownListState.Items.FindByValue("0").Selected =true;
}