刚开始学C# ASP。NET,就试着做一些例子:
两个ListBox,中间有四个按钮。第一个可以将左边LISTBOX的内容部分移到右边的LISTBOX中,Button3的代码如下,可以正确运行。
但Button4可以无错运行,我选中左边的一个内容,按这个按钮,却没有东西过去。
我调试发现:if (ListBox1.Items[i].Selected) 一直为False。这是怎么回事?
private void Button3_Click(object sender, System.EventArgs e)
{
for (int i=0;i<ListBox1.Items.Count;i++)
ListBox2.Items.Add(ListBox1.Items[i]);
ListBox1.Items.Clear();
} private void Button4_Click(object sender, System.EventArgs e)
{
for (int i=0;i<ListBox1.Items.Count;i++)
if (ListBox1.Items[i].Selected)
ListBox2.Items.Add(ListBox1.Items[i].Text);
}
两个ListBox,中间有四个按钮。第一个可以将左边LISTBOX的内容部分移到右边的LISTBOX中,Button3的代码如下,可以正确运行。
但Button4可以无错运行,我选中左边的一个内容,按这个按钮,却没有东西过去。
我调试发现:if (ListBox1.Items[i].Selected) 一直为False。这是怎么回事?
private void Button3_Click(object sender, System.EventArgs e)
{
for (int i=0;i<ListBox1.Items.Count;i++)
ListBox2.Items.Add(ListBox1.Items[i]);
ListBox1.Items.Clear();
} private void Button4_Click(object sender, System.EventArgs e)
{
for (int i=0;i<ListBox1.Items.Count;i++)
if (ListBox1.Items[i].Selected)
ListBox2.Items.Add(ListBox1.Items[i].Text);
}
{
foreach(ListItem li in ListBox1.Items)
{
if(li.Selected == true)
{
ListBox2.Items.Add(li.Text);
}
}
}
{
ListBox2.Items.Add(ListBox1.SelectedItems[i].ToString();
}这样就可以
if(!IsPostBack)
{
}
??
{
}
这个直接加上有什么用吗?里面要加什么内容?
seesea125(执著)说的应该是对的。
if(!IsPostBack)
{
//存放你绑定ListBox1数据的代码
}if(!IsPostBack)判断是否第一次打开该画面。
只是不明白。为什么要:
if(!IsPostBack)
{
//存放你绑定ListBox1数据的代码
}这是什么意思?有什么作用?谢谢。搞明白了就放分。
上面这句话是判断这个画面是否第一次打开。
因为web画面点击按钮的时候都会触发PAGELOAD。
你没有加这句话的时候,点击Button3的时候,他重新绑定了ListBox1的数据,此时没有记忆ListBox1中哪些数据被选中,所以导致if (ListBox1.Items[i].Selected) 一直为False