注册 登录
编程论坛 ASP.NET技术论坛

DropDownList控件的问题

热学男儿 发布于 2007-12-30 14:31, 899 次点击
DropDownList控件的SelectedIndexChanged时间,该怎样写才有效呢,为什么我写了以后,在改变DropDownList控件的选项时总是无效,下面是我写的部分代码,请朋友们帮忙指正一下,谢谢。
public partial class _Default : System.Web.UI.Page
{
    //连接数据库的字符串
    String myConnetionString = "server=E65B726CAB1141D;Initial Catalog=peoples;User ID=Sa;pwd=19830125;";
    SqlConnection myConnetion = new SqlConnection();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            repeaterBind();
    }
    //绑定数据源
    private void repeaterBind()
    {
        myConnetion.ConnectionString = myConnetionString;
        string city = DropDownList1.SelectedItem.ToString();
        string selectCommend = "SELECT * FROM people_1 WHERE usercity='" + city + "'";
        SqlDataAdapter myAdapter = new SqlDataAdapter(selectCommend, myConnetion);
        myConnetion.Open();
        DataSet mySet = new DataSet();
        myAdapter.Fill(mySet, "people_1");
        Repeater1.DataSource = mySet;
        Repeater1.DataBind();
        myConnetion.Close();
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)  //这个事件到底该怎么写才有效呢?
    {
        repeaterBind();
    }
}
5 回复
#2
lxd8242007-12-30 15:24
你在SelectedIndexChanged事件中再次绑定数据做什么?你这样当然什么都看不到了哦,每次当你选了个新的东西的时候,触发这个事件,又再次绑定里面的数据,使得dropdownlist又初始化了一次
#3
热学男儿2007-12-30 16:11
但是当改变事件的时候select查询字符串会发生变化,所以每次绑定查询出来的内容应该是不相同的吧,那每次显示的内容都应该是不同的,应该是有变化的吧。
#4
热学男儿2007-12-30 16:47
在添加一个按钮,在按钮的监听事件里就可以做到变化,为什么啊,下面是改成在按钮的监听里的代码,这样就可以做到预期的结果。
public partial class _Default : System.Web.UI.Page
{
    //连接数据库的字符串
    String myConnetionString = "server=E65B726CAB1141D;Initial Catalog=peoples;User ID=Sa;pwd=19830125;";
    SqlConnection myConnetion = new SqlConnection();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            repeaterBind();
    }
    //绑定数据源
    private void repeaterBind()
    {
        myConnetion.ConnectionString = myConnetionString;
        string city = DropDownList1.SelectedItem .ToString ();
        string selectCommend = "SELECT * FROM people_1 WHERE usercity='" + city + "'";
        SqlDataAdapter myAdapter = new SqlDataAdapter(selectCommend, myConnetion);
        myConnetion.Open();
        DataSet mySet = new DataSet();
        myAdapter.Fill(mySet, "people_1");
        Repeater1.DataSource = mySet;
        Repeater1.DataBind();
        myConnetion.Close();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        repeaterBind();
    }
}
#5
soonce2007-12-30 22:14
autopostback启用了没有?
#6
热学男儿2007-12-30 23:19
原来是这样啊
谢谢楼上的朋友
1