2010-10-10 58 views
1

我正在將它從一個ASP.NET ListBox控件移動到另一個客戶端的ListBox控件。它適用於客戶端,但是當我嘗試在服務器端對 目標列表框中的項進行計數時,它始終沒有任何結果。下面是用於從ListBox控件添加/刪除項目的jQuery代碼。從客戶端向ASP.NET中的另一個ListBox控件添加/刪除項目從一個ListBox控件添加/刪除項目

<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中的項目。但我想從客戶端完成它。

爲什麼計數來自代碼隱藏的項目時,目標列表框中沒有任何內容,儘管這些項目已經從客戶端添加。

回答

0

對控件進行的Javascript修改不會顯示在服務器端。我認爲這與asp.net生活圈有關。但是它顯示在隱藏字段中。 因此,如果您將在其他隱藏字段中添加信息,您可以在服務器端追蹤它,例如,您可以在隱藏字段中保存id或選項名稱。

0

即使它在客戶端顯示,它沒有提交給服務器,值不會更新在服務器中。您是否執行任何操作來更新列表,如運行update db sql?

如果你想在頁面提交時使用Ajax。

0

恐怕您需要使用更新面板來允許服務器跟蹤控件的視圖狀態更改。

Serverside集團:

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>