DropDownList数据初始化,绑定,添加,插入首行,插入结尾,不触发SelectedIndexChanged事件,[asp.net基础]

DropDownList,常用服务器控件。

数据绑定方式可以采用循环,使用Items的Add方法追个添加数据,也可以绑定DataTable或者dataset。数据的初始化一定要放在“IsPostBack”里边,要不在回发事件中就取不到值了(只能取第一条记录的值)。

1、循环添加数据

if (!IsPostBack)
{
    DropDownList1.Items.Clear();    //加入数据前先清空数据
    for (int i = 0; i < 10; i++)
    {
      DropDownList1.Items.Add(new ListItem("我是text" + i.ToString(), "我是value" + i.ToString()));
    }
}
2、读取数据库后绑定
if (!IsPostBack)
{
    DB _db = new DB();
    string _sql = "select * from bubufxDropdownlistTable";

    DataTable _DT = _db.GetDt(_sql);   //调用数据库操作方法获得DataTable

    DropDownList1.DataSource = _DT;
    DropDownList1.DataTextField = "name";   //指定数据库字段name为text
    DropDownList1.DataValueField = "ID";   //指定数据库字段ID为value
    DropDownList1.DataBind();
}
3、绑定完成数据后,插入首记录或者尾记录

插入首记录:

//绑定完成后向DropDownList1再加入数据,加在首行
DropDownList1.Items.Insert(0,new ListItem("加塞一个首记录","0"));
添加尾记录,两种方式:
//绑定完成后向DropDownList1再加入数据,加在尾行
DropDownList1.Items.Add(new ListItem("加塞一个尾记录", "1000"));

//绑定完成后向DropDownList1再加入数据,加在尾行
DropDownList1.Items.Insert(DropDownList1.Items.Count, new ListItem("加塞一个尾记录", "10000"));
4、DropDownList点击后触发事件

添加DropDownList1_SelectedIndexChanged事件,并在html中加入AutoPostBack="True"代码,这样选择DropDownList的item时就可以触发事件了。

5、获取DropDownList值

获得选中的值:”DropDownList1.SelectedValue“ 或者 “DropDownList1.SelectedItem.Value”

获得选中的text:DropDownList1.SelectedItem.Text

还可以:DropDownList1.Items[DropDownList1.SelectedIndex].Text,DropDownList1.Items[DropDownList1.SelectedIndex].Value

6、加入了AutoPostBack="True"仍然不触发DropDownList1_SelectedIndexChanged事件解决办法

这一般情况下是因为value的值有重复导致,比如添加数据时:

DropDownList1.Items.Add(new ListItem("我是text" + i.ToString(), "我是value"));

这样所有的alue都是“我是value”,这样是不会触发DropDownList1_SelectedIndexChanged事件的,或者其中有重复的,当前选中的和又选择的value是一样,这样也不会触发DropDownList1_SelectedIndexChanged事件。

msdn有一个解释:ListControl.SelectedIndexChanged 事件 ,当列表控件的选定项在信息发往服务器之间变化时发生。


DropDownList数据初始化,绑定,添加,插入首行,插入结尾,不触发SelectedIndexChanged事件,[asp.net基础]

上一篇:SQL笔记 - 解决CTE定位点类型和递归部分的类型不匹配


下一篇:css控制内容内img标签的图片在固定大小内,小于固定大小原样显示,大于的固定大小