Javascript 从客户端将项目从ASP.NET中的一个ListBox控件添加/删除到另一个ListBox控件

Javascript 从客户端将项目从ASP.NET中的一个ListBox控件添加/删除到另一个ListBox控件,javascript,asp.net,jquery,viewstate,listboxitem,Javascript,Asp.net,Jquery,Viewstate,Listboxitem,我正在将它从一个ASP.NET ListBox控件从客户端移动到另一个ListBox控件。它在客户端工作,但当我试图在 在服务器端的目标列表框中,它总是空的。下面是用于从ListBox控件添加/删除项的jQuery代码 <script type="text/javascript"> $(document).ready(function(addToList) { // to move selected item from lbSource to lbDestinatio

我正在将它从一个ASP.NET ListBox控件从客户端移动到另一个ListBox控件。它在客户端工作,但当我试图在 在服务器端的目标列表框中,它总是空的。下面是用于从ListBox控件添加/删除项的jQuery代码

<script type="text/javascript">
    $(document).ready(function(addToList) {
    // to move selected item from lbSource to lbDestination
    $("#add").click(function() {
    $("#lbSource  option:selected").appendTo("#lbDestination").attr("selected", false);
    });

    // to remove selected item from lbDestination to lbSource
    $("#remove").click(function() {
    $("#lbDestinaion option:selected").appendTo("#lbSource").attr("selected", false);
    });
});
</script>

$(文档).ready(函数(addToList){
//将所选项目从lbSource移动到lbDestination
$(“#添加”)。单击(函数(){
$(“#lbSource option:selected”).appendTo(“#lbDestination”).attr(“selected”,false);
});
//将所选项目从lbDestination删除到lbSource的步骤
$(“#删除”)。单击(函数(){
$(“#lbdestinion option:selected”).appendTo(“#lbSource”).attr(“selected”,false);
});
});
我知道我们可以从服务器端添加/删除列表框中的项目。但我想从客户端完成


为什么在计算代码隐藏中的项目时,目标列表框中没有任何内容,即使这些项目已经从客户端添加

在控件上进行的Javascript修改不会显示在服务器端。我认为这与asp.net的生命周期有关。但是,它显示在隐藏字段中。
因此,如果要在其他隐藏字段中添加信息,可以在服务器端对其进行跟踪,例如,可以在隐藏字段中保存选项的ID或名称

即使它显示在客户端,它也不会提交到服务器,服务器中的值也不会更新。您是否正在执行任何操作来更新列表,例如运行update db sql


如果您想在不提交页面的情况下执行此操作,请使用Ajax。

恐怕您需要使用更新面板来允许服务器跟踪控件的视图状态更改

服务器端:

protected void btnMove_OnClick(object sender, EventArgs Args)
{
    ListItem SourceItem = bSource.SelectedItem;

    lbDestination.Items.Add(SourceItem );
    lbSource.Items.Remove(SourceItem);
}
加价:

<asp:UpdatePanel ChildrenAsTriggers="true" runat="Server">
    <ContentTemplate>

    <asp:ListBox ID="lbSource" runat="server"/>
    <asp:Button ID="btnMove" OnClick="btnMove_OnClick" runat="server"/>
    <asp:ListBox ID="lbDestination" runat="server"/>

    </ContentTemplate>
</asp:UpdatePanel>