在asp.net 页面了放了一个 ListBox 控件 ListBox1
然后给ListBox1 添加数据private void class_ad() {
ListBox1.Items.Clear();
string sqlstr="select cid,cname from ad_class where classid=0 and flag=1";
SqlDataReader dr ;
dr=conn.GetReader(sqlstr);
ListItem slist;
while(dr.Read())
{
slist=new ListItem();
slist.Text=dr["cname"].ToString()+" ";
slist.Value=dr["cid"].ToString();
ListBox1.Items.Add(slist);
}
dr.Close();
}上面这个都没问题,数据如期显示然后我想选择 先其中一个项,然后对其进行操作(修改,删除)就拿删除为例,我先选择其中一项,然后点击下面的事件按钮.
private void Button1_Click(object sender, System.EventArgs e)
{

if(ListBox1.SelectedIndex!=-1)
{
; }
else
{
Response.Write("<script language=javascript>alert('你没有选择!');</script>");
}

}
这是程序出错了,提示我没有选择!
可是我明明选择了!大家帮帮我吧!这到底为什么不能选择呀!

解决方案 »

  1.   

    我在这个页面里还有同样的一个ListBox2,功能一样,可是一点问题都没有
      

  2.   

    你這個class_ad方法是不是在pageload裏面調用的?
      

  3.   

    这是因为你ListBox1初始化时有默认选择项,SelectedIndex就不为-1。页面初始化时指定他的SelectedIndex=-1就行了
      

  4.   

    hyj_828(水梦) 你這個class_ad方法是不是在pageload裏面調用的?-----------------------------------------------
    是在pageload裏面調用的?
      

  5.   

    AloneCorpse(孤魂夜尸) 这是因为你ListBox1初始化时有默认选择项,SelectedIndex就不为-1。页面初始化时指定他的SelectedIndex=-1就行了-------------------------------------------你说的我没明白!!!
      

  6.   

    ListBox1的html中添加设置属性 AutoPostBack=True,
      

  7.   

    没有错,你确实是错误了.
    因为你没有重载好Page_Load(){}
    假设:
    Page_Load(){//这里绑定listbox
    }
    以上是一种错误,就如你所犯.因为每次Page_Load()先于Click()事件被调用,选中的项目又再次被清零了.你应该
    Page_Load(){
    if(IsPostBack){
    //这里绑定listbox
    }
    }
    另外你还要注意,当你删除了项目后,应该重新绑定一次ListBox.
    try it .- 4kzeng
    - regards
      

  8.   

    先在pageload里面初始化一下就可以了
      

  9.   

    Page_Load(sender,e){
    if(!IsPostBack){
       class_ad();
    }
    }void Button1_Click(sender,e){
         //delete code      class_ad();
    }
      

  10.   

    注意我这里漏掉" ! " 号.
    if(!IsPostBack){
      

  11.   

    确实如 forkzeng(小光)  所说我注视掉了private void Page_Load(object sender, System.EventArgs e)
    {

    //class_ad();

    if(Session["uname"]!=null&&Session["flag"]!=null)
    {
    int flag=int.Parse(Session["flag"].ToString());
    if(flag==0)
    {
    //if(!IsPostBack)
    //{
    class_ad();
    //}
    }
    else
    {
    Response.Write("<script language=javascript>alert('你没有权限!');location.href='main.aspx';</script>");

    }
    }
    else
    {
    Response.Write("<script language=javascript>alert('你没有权限,或你登录已超时!');top.location.href='index.htm';</script>");

    }


    // 在此处放置用户代码以初始化页面
    }