繁体   English   中英

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

[英]Add/Remove items from one ListBox control to another ListBox control in ASP.NET from the client-side

我正在将Itmes从一个ASP.NET ListBox控件移动到客户端的另一个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>

我知道我们可以从服务器端从ListBox添加/删除项目。 但我想从客户端完成它。

尽管从客户端添加了项目,但为什么从后面的代码计数项目时为什么目标ListBox中没有任何内容。

在控件上进行的Java修改不会显示在服务器端。 我认为这与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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM