private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{}
string user = Session["user"].ToString();
SqlConnection mycon=new SqlConnection("workstation id='TRENSOFT-DF060B';packet size=4096;user id=sa;data source='TRENSOFT-DF060B';persist security info=False;initial catalog=message");
string mysql="select name from login";

SqlDataAdapter myda = new SqlDataAdapter(mysql,mycon);
DataSet myds = new DataSet();
myda.Fill(myds);
ListBox1.DataSource=myds.Tables[0].DefaultView;
ListBox1.DataTextField = "name";
ListBox1.DataValueField = "name";
ListBox1.DataBind();
}
private void Button1_Click(object sender, System.EventArgs e)
{
string str="";
for(int i=0;i<ListBox1.Items.Count;i++)
{

if(ListBox1.Items[i].Selected)
{
str+=ListBox1.Items[i].Value.Trim()+',';
}
}
if(str.Length>0)
{
str=str.Substring(0,str.Length-1);

}
TextBox1.Text = str;
}
这是我看以前一个老帖子模仿了写的.但是运行后不管我选什么TextBox1中都没有值.多番试验,发现是ListBox1.Items[i].Selected这个判断条件无效.然后我又试了微软的方法
foreach (ListItem item in ListBox1.Items)
         {            if(item.Selected)
            {               Message.Text += item.Text + "<br>";            }         }
还是无效.实在是搞不定了.希望各位前辈赐教阿

解决方案 »

  1.   

    测试可以前台
    --------------------------------------------------
    <asp:ListBox ID="lb_test" Runat="server" SelectionMode="Multiple">
    <asp:ListItem Value="333">333</asp:ListItem>
    <asp:ListItem Value="111">111</asp:ListItem>
    <asp:ListItem Value="222">222</asp:ListItem>
    </asp:ListBox>
    <asp:Button ID="btn_test" Runat="server" Text="TEST"></asp:Button>
    ---------------------------------------------------
    后台
    ---------------------------------------------------
    for (int i=0;i<lb_test.Items.Count;i++)
    {
    if (lb_test.Items[i].Selected == true)
    Response.Write(lb_test.Items[i].Text);
    }
    ---------------------------------------------------
      

  2.   

    楼上的大哥。你这个是可以我试过了,和我的不同之处在于你的item是写好的。我的是DataBind的。而你的判断条件和我的是一样的阿.输出基本也一样。我的问题还是没有解决阿
      

  3.   


    string user = Session["user"].ToString();
    SqlConnection mycon=new SqlConnection("workstation id='TRENSOFT-DF060B';packet size=4096;user id=sa;data source='TRENSOFT-DF060B';persist security info=False;initial catalog=message");
    string mysql="select name from login";SqlDataAdapter myda = new SqlDataAdapter(mysql,mycon);
    DataSet myds = new DataSet();
    myda.Fill(myds);
    ListBox1.DataSource=myds.Tables[0].DefaultView;
    ListBox1.DataTextField = "name";
    ListBox1.DataValueField = "name";
    ListBox1.DataBind();
    放到
    if(!IsPostBack)
    {
    }
    中。
      

  4.   

    我同样做了一个DropDownList.取值方法和前面写的一模一样.可以取到值.而之前的listbox就始终没有值。谁能解释?
      

  5.   

    string str="";
    if ( this.lbGroup.Items.Count >0)
    {
    for ( int i=0 ;i< this.lbGroup.Items.Count ;i++)
    {

    if (this.lbGroup.Items[i].Selected == true)
    {

    str+=  this.lbGroup.Items[i].Value;

    }
    }
    TextBox1.Text = str;
    }
      

  6.   

    你说
    但是运行后不管我选什么TextBox1中都没有值.多番试验,发现是ListBox1.Items[i].Selected这个判断条件无效.然后我又试了微软的方法
    ------------------------------------------------------------------------
    晕...放入
    if(!IsPostBack)
    {
        //代码
    }
    还有
    ListBox控件的EnableViewState = true
      

  7.   

    楼上的大哥我都按你说的做了。
    <asp:ListBox id="ListBox1" style="Z-INDEX: 101; LEFT: 144px; POSITION: absolute; TOP: 16px" runat="server"
    Width="176px" Height="88px" SelectionMode="Multiple" EnableViewState = true></asp:ListBox>
    if(!IsPostBack)
    {
        //代码
    }
    之前swordragon(古道热肠) 说过了我就改了.
    现在还是不行啊.
      

  8.   

    to:smallMage(小马哥) 
    我家过this还是不行