1

我正在从客户端将项目从一个 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 中没有任何内容,即使项目已经从客户端添加。

4

3 回答 3

0

即使它显示在客户端,它也没有提交到服务器,服务器中的值也没有更新。你是否正在执行任何更新列表的操作,比如运行 update db sql?

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

于 2010-10-11T17:53:25.137 回答
0

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

服务器端:

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>
于 2011-02-02T02:44:57.380 回答
0

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

于 2010-10-10T19:22:43.940 回答