日期:2014-05-18  浏览次数:20452 次

dropdownlist不知道咋了
Cdropdownlist不知道咋了,例如读取数据库后动态添加以下的项:
text value
 a 1
 b 2
 c 3
 d 4
当选择c时,(AutoPostBack=true)
触发
[code=#]
    protected void ddlClass_SelectedIndexChanged(object sender, EventArgs e)
    {
        Response.Redirect("~/ClassView.aspx?classID=" + ddlClass.SelectedValue);  //就是跳到自身页面
    }
[/code]
之后只能选择a和b,不能选d,也就是只能选比你现在选的value小的项,
如果选d的话,就会跳转到选c的页面状况,相当于什么都没做,
请问这是怎么回事啊?这怎么解决?

------解决方案--------------------
我这里没有你的问题啊。你是怎么使用classID这个参数的。

还有一个问题,你redirect到自己会丢失viewstate的。也就是你选择的那个选中状态会丢失。

你的代码很奇怪呦。实际上刷新了两次页面,一次世indexchanged产生的postback,另一次是Redirect。实际上你不需要redirect的。postback后就可以通过ddlClass.SelectedValue取得选中的值。
------解决方案--------------------
C# code
strSql = "select * from article where classID=" + Convert.ToInt32(Request["classID"].ToString());

------解决方案--------------------

protected void Page_Load(object sender, EventArgs e) {
 if(!IsPostBack) {
// 绑定 Dropdownlist 代码
// ...
}
}

protected void ddlClass_SelectedIndexChanged(object sender, EventArgs e)
{
// Response.Redirect("~/ClassView.aspx?classID=" + ddlClass.SelectedValue); //就是跳到自身页面
// 根据 ddlClass.SelectedValue 执行你的代码 
// .....
}
------解决方案--------------------
不需要用Response.Redirect这种方式吧.

直接当前页根据dropdownlist的选择绑定数据就行了