开发环境为VS2010
创建了一个ASP.NET WEB应用程序,之后①在Page_Load函数中创建了一个数据集,并将其绑定到ListBox1控件上,代码如下:
            if (!Page.IsPostBack)
            {
                //数据生成
                DataSet ds = new DataSet();
                ds.Tables.Add("stu");
                ds.Tables["stu"].Columns.Add("stuNo", typeof(int));
                ds.Tables["stu"].Columns.Add("stuName",typeof(string));
                ds.Tables["stu"].Columns.Add("stuScore",typeof(int));
                ds.Tables["stu"].Rows.Add(new object[] { 1, "张一", 100 });
                ds.Tables["stu"].Rows.Add(new object[] { 2, "王二", 100 });
                ds.Tables["stu"].Rows.Add(new object[] { 3, "李三", 100 });
                ds.Tables["stu"].Rows.Add(new object[] { 4, "赵四", 100 });
                ds.Tables["stu"].Rows.Add(new object[] { 5, "周五", 100 });
                //绑定数据到ListBox控件
                this.ListBox1.DataSource = ds.Tables["stu"];
                this.ListBox1.DataValueField = "stuNo";
                this.ListBox1.DataTextField = "stuName";
                this.ListBox1.DataBind();
            }②在Default.aspx的“设计”视图中选定ListBox1Kongjian ,在属性窗口中双击SelectedIndexChanged,然后在Default.aspx.cs文件中创建ListBox1_SelectedIndexChanged函数,之后再从工具箱中拖入一个Label控件,用来显示用户选择的内容③在ListBox1_SelectedIndexChanged函数中添加如下代码:
        protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.Label1.Text = "你选择的学生是: 学号:" + this.ListBox1.SelectedValue.ToString() +
                "  姓名:" + this.ListBox1.SelectedItem.Text.ToString();
        }最后点击运行,然后在ListBox文本框中选择这些选项,但是在Label标签中却显示不出相关信息各位大哥前辈帮忙看下哪边出错了,我的信息应该挺清楚了吧。
本人比较穷,就少给点分了。

解决方案 »

  1.   

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    DataTable dt = ..
                    ListBox1.DataSource = dt;
                    ListBox1.DataValueField = "name";
                    ListBox1.DataTextField = "name";
                    ListBox1.DataBind();
                }
                     }        protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string name = ListBox1.SelectedItem.Text;
               //常规取item和value
               string a = ListBox1.SelectedItem.ToString();
               string b = ListBox1.SelectedValue.ToString();
        
               //
               string c = ((ListBox)sender).SelectedItem.ToString();
                string d = ((ListBox)sender).SelectedValue.ToString();
           }

    或DataRowView dr; dr=(DataRowView)this.ListBox1.SelectedItem
      

  2.   

    <asp:ListBox ID="ListBox1" runat="server" Height="200px" Width="200px" Font-Size="Small"  onselectedindexchanged="ListBox1_SelectedIndexChanged"></asp:ListBox>
    原来是这里面缺了AutoPostBack="true" 这个东东,谢谢前辈了,后台的C#程序没有出错,标签里加了这个属性就可以正常显示了。