2013年8月27日 星期二

[ASP.NET] DropDownList常用語法紀錄

1. 資料繫結
xxx.aspx.cs
ddlTest.DataSource = 資料來源;
ddlTest.DataTextField = 繫結欄位Text字串;
ddlTest.DataValueField = 繫結欄位Value字串;
ddtTest.Text = 指定顯示Value;

//若繫結欄位為DataTable的Date欄位,要去除上午12:00:00
for (int i = 0; i < ddlTest.Items.Count; i++)
{
    ddlTest.Items[i].Text = Convert.ToDateTime(ddlTest.Items[i].Text).ToString("yyyy/MM//dd");
    ddlTest.Items[i].Value = Convert.ToDateTime(ddlTest.Items[i].Value).ToString("yyyy/MM//dd");
}

2. 取得選取項目文字與值
xxx.aspx
<asp:DropDownList ID="ddlTest" runat="server">

xx.aspx.cs
string strText = ddlTest.SelectedItem.Text; //取得選擇的Text
string strValue = ddlTest.SelectedValue;//取得選擇的Value


3.1 下拉選單預設先顯示「請選擇」項目,再出現繫結的資料。
有下列方法,可搭配if (ddlTest.SelectedIndex > 0)。:
3.1.1
xxx.aspx.cs
 ListItem item = new ListItem();
 item.Text = "請選擇";
 item.Value = "0";
 item.Selected = true;
 ...
 this.ddlTest.DataBind();
 this.ddlTest.Items.Add(item);

 ...
 this.ddlTest.DataBind();
 this.ddlTest.Items.Insert(0, "請選擇"或item));

3.1.2.
//xxx.aspx 繫結靜態項目
<asp:DropDownList ID="ddlTest" runat="server"  AppendDataBoundItems="True">
<asp:ListItem Value="0"  Text="請選擇"></asp:ListItem>
</asp:DropDownList>

3.2 清空已繫結項目 (使用兩個DropDownList做連動,第二個DropDownList的AppendDataBoundItems屬性設成 true,導致Item重複繫結 )
ddlTest.Items.Clear();
會連靜態繫結項目都清空,可以搭配ddlTest.Items.Insert(index, item)或ddlTest.Items.Add(item)來重新繫結。


4. ListItem Text繫結資源檔
xxx.aspx
<asp:DropDownList ID="ddlTest" runat="server">
        <asp:ListItem Value="ID" Text="<%$ Resources:PageResource, ID %>"></asp:ListItem>
        <asp:ListItem Value="Name" Text="<%$ Resources:PageResource, Name %>"></asp:ListItem>
</asp:DropDownList>

to be continued...

沒有留言:

張貼留言