簡體   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