我现在想实现两个listbox之间传数据,四个按钮就是选中单个,选中全部,删除一个,删除全部   我想用   listA.Items.Add(this.listB.SelectedValue);     最终B的内容要存入数据库,我想对A进行数据绑定,显示值是姓名,实际值是ID,可是我传到B的时候显示却是ID,大家有没有更好的办法啊!     如果不用数据捆绑话,只显示姓名,可以传到B,但是那是姓名,可能会重复,最好也可以得到ID,和姓名!     如果我用捆绑,利用listB.SelectedValue再去数据库找姓名觉得数据库访问太频繁了! 
谢谢大家了!!!!!!!!

解决方案 »

  1.   

    楼主可以把下面的拷贝到.net 2005编辑器里看看效果。
    前台:
    <table> 
    <tr>
                    <td align="center" valign="middle">
                        <asp:ListBox ID="listAll" runat="server" SelectionMode="Single" Height="230px" Width="150px">//下面的数据可以绑定显示
                            <asp:ListItem Value="name">姓名</asp:ListItem>
                            <asp:ListItem Value="sex">性别</asp:ListItem>
                            <asp:ListItem Value="nation">民族</asp:ListItem>
                            <asp:ListItem Value="n_place">籍贯</asp:ListItem>
                            <asp:ListItem Value="jw_hours">参加工作时间</asp:ListItem>
                            <asp:ListItem Value="birthday">出生年月</asp:ListItem>
                            <asp:ListItem Value="id_card">身份证号</asp:ListItem>
                            <asp:ListItem Value="stc_tag">职称</asp:ListItem>
                            <asp:ListItem Value="fl_grade">外语等级</asp:ListItem>
                            <asp:ListItem Value="com_grade">计算机等级</asp:ListItem>
                            <asp:ListItem Value="clan_name">党派名称</asp:ListItem>
                        </asp:ListBox>
                    </td>
                    <td align="center" valign="middle" width="20px">
                        <asp:ImageButton ID="up" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/image/up.gif"//up.gif 是把右边的listbox 中的某一项向上移动。
                            OnClick="up_Click" /><br />
                        <br />
                        <asp:ImageButton ID="dn" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/image/dn.gif"//dn.gif是把右边的listbox 中的某一项向下移动。
                            OnClick="dn_Click" /><br />
                        <br />
                        <asp:ImageButton ID="ffwd" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/image/ffwd.gif"//ffwd.gif是全部添加之右边的listbox
                            OnClick="ffwd_Click" /><br />
                        <br />
                        <asp:ImageButton ID="rt" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/image/rt.gif"//rt.gif是选中左边的一项,添加到右边的listbox中
                            OnClick="rt_Click" /><br />
                        <br />
                        <asp:ImageButton ID="lt" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/image/lt.gif"//lt.gif从右边的listbox中删除一项。
                            OnClick="lt_Click" /><br />
                        <br />
                        <asp:ImageButton ID="frew" runat="server" ImageAlign="AbsMiddle" ImageUrl="~/image/frew.gif"//frew.gif是把右边listbox数据全部删除
                            OnClick="frew_Click" />
                    </td>
                    <td align="center" valign="middle">
                        <asp:ListBox ID="listFilter" runat="server" SelectionMode="Single" Height="230px"
                            Width="150px"></asp:ListBox>
                    </td>
                </tr>
    </table>后台:
    protected void lt_Click(object sender, ImageClickEventArgs e)
        {
            if (this.listFilter.Items.Count >= 1)
            {
                try
                {
                    int m = listFilter.SelectedIndex == this.listFilter.Items.Count - 1 ? 0 : this.listFilter.SelectedIndex;
                    ListItem item = new ListItem();
                    item.Value = this.listFilter.SelectedValue;
                    item.Text = this.listFilter.SelectedItem.Text;
                    this.listAll.Items.Add(item);
                    this.listFilter.Items.RemoveAt(this.listFilter.SelectedIndex);
                    this.listFilter.Items[m].Selected = true;
                }
                catch
                {
                }
            }
        }
        protected void rt_Click(object sender, ImageClickEventArgs e)
        {
            if (this.listAll.Items.Count >= 1)
            {
                try
                {
                    int m = this.listAll.SelectedIndex == this.listAll.Items.Count - 1 ? 0 : this.listAll.SelectedIndex;
                    ListItem item = new ListItem();
                    item.Value = this.listAll.SelectedValue;
                    item.Text = this.listAll.SelectedItem.Text;
                    this.listFilter.Items.Add(item);
                    this.listAll.Items.RemoveAt(this.listAll.SelectedIndex);
                    this.listAll.Items[m].Selected = true;
                }
                catch
                {
                }
            }
        }
        protected void ffwd_Click(object sender, ImageClickEventArgs e)
        {
            if (this.listAll.Items.Count >= 1)
            {
                for (int i = 0; i < this.listAll.Items.Count; i++)
                {
                    ListItem item = new ListItem();
                    item.Value = this.listAll.Items[i].Value;
                    item.Text = this.listAll.Items[i].Text;
                    this.listFilter.Items.Add(item);
                }
                this.listAll.Items.Clear();
            }
        }
        protected void frew_Click(object sender, ImageClickEventArgs e)
        {
            if (this.listFilter.Items.Count >= 1)
            {
                for (int i = 0; i < this.listFilter.Items.Count; i++)
                {
                    ListItem item = new ListItem();
                    item.Value = this.listFilter.Items[i].Value;
                    item.Text = this.listFilter.Items[i].Text;
                    this.listAll.Items.Add(item);
                }
                this.listFilter.Items.Clear();
            }
        }
        protected void up_Click(object sender, ImageClickEventArgs e)
        {
            if (this.listFilter.Items.Count >= 2)
            {
                try
                {
                    ListItem item = new ListItem();
                    item.Value = this.listFilter.SelectedValue;
                    item.Text = this.listFilter.SelectedItem.Text;
                    int selectindex = this.listFilter.SelectedIndex;
                    this.listFilter.Items[selectindex].Value = this.listFilter.Items[selectindex - 1].Value;
                    this.listFilter.Items[selectindex].Text = this.listFilter.Items[selectindex - 1].Text;                this.listFilter.Items[selectindex - 1].Value = item.Value;
                    this.listFilter.Items[selectindex - 1].Text = item.Text;
                    for (int i = 0; i < this.listFilter.Items.Count; i++)
                    {
                        this.listFilter.Items[i].Selected = false;
                    }
                    this.listFilter.Items[selectindex - 1].Selected = true;
                }
                catch
                {
                }
            }
        }
        protected void dn_Click(object sender, ImageClickEventArgs e)
        {
            if (this.listFilter.Items.Count >= 2)
            {
                try
                {
                    ListItem item = new ListItem();
                    item.Value = this.listFilter.SelectedValue;
                    item.Text = this.listFilter.SelectedItem.Text;
                    int selectindex = this.listFilter.SelectedIndex;
                    this.listFilter.Items[selectindex].Value = this.listFilter.Items[selectindex + 1].Value;
                    this.listFilter.Items[selectindex].Text = this.listFilter.Items[selectindex + 1].Text;                this.listFilter.Items[selectindex + 1].Value = item.Value;
                    this.listFilter.Items[selectindex + 1].Text = item.Text;
                    for (int i = 0; i < this.listFilter.Items.Count; i++)
                    {
                        this.listFilter.Items[i].Selected = false;
                    }
                    this.listFilter.Items[selectindex + 1].Selected = true;
                }
                catch
                {
                }
            }
        }
      

  2.   

    int index=0;
    ListItem item=ListBox1.Items[index];
    for(int i=0;i<listbox1.Items.count;i++)
    {
    if(ListBox1.Items[index].selected=true)
    {
    listBox1.Items.Add(item
    index--;
    }
    index++;
    }