列表框操作

时间:2010-08-23 12:35:22

标签: javascript asp.net vb.net

我使用的是asp.net列表框。我有两个按钮,一个用于向列表框添加项目,另一个用于删除。我正在使用javascript函数从列表框中删除项目。当我删除后添加到列表框。删除的项目也会被添加。

<asp:ListBox ID="sLstbox" runat="server" Width="250px" Height="150px" TabIndex="10"></asp:ListBox>

<asp:LinkButton ID="sLbtnAdd" runat="server" ></asp:LinkButton>&nbsp; 
<a href="#" id="hAncRemove" runat="server" onclick="fncRemoveItems();">Remove</a>    

function fncRemoveItems()
{
    var i;
    var strIDs="";
    var items = document.getElementById("sLstbox");
    alert(items.options.length);
    for (i = items.options.length - 1; i >= 0; i--)
    {
        if (items.options[i].selected)
            items.remove(i);
    }
}

IN代码

Protected Sub sLbtnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles sLbtnAdd.Click

    Dim li As New ListItem
    li.Value = "1"
    li.Text = "test"
    sLstbox.Items.Add(li)
End Sub

2 个答案:

答案 0 :(得分:0)

你应该使用普通&lt;选择&gt;在这种情况下的盒子。 asp:listboxes应该在服务器端进行操作,你需要破解它以使其按照你想要的方式工作。

使用普通的选择框(无论是否是runat服务器),它应该非常简单。

答案 1 :(得分:0)

如果你想让你的生活更轻松并给你'AJAX'效果,那就把它全部放在UpdatePanel并做服务器端。如果你想使用asp:ListBox,通过javascript操纵它会很痛苦。

以下是适用于您的场景的aspx代码和代码隐藏实现的工作示例:

<asp:UpdatePanel ID="yourUpdatePanel" runat="server">
    <ContentTemplate>
        <asp:ListBox ID="sLstbox" runat="server" Width="250px" Height="150px" TabIndex="10"></asp:ListBox> 
        <asp:LinkButton ID="sLbtnAdd" runat="server" OnClick="sLbtnAdd_Click" ></asp:LinkButton>&nbsp;  
        <asp:LinkButton ID="sLbtnRemove" runat="server"  OnClick="sLbtnRemove_Click"></asp:LinkButton>&nbsp;        
    </ContentTemplate>
</asp:UpdatePanel>    

在你的代码隐藏中:

Protected Sub sLbtnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles sLbtnAdd.Click            
    Dim li As New ListItem      
    li.Value = "1"      
    li.Text = "test"      
    sLstbox.Items.Add(li)      
End Sub 

Protected Sub sLbtnRemove_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles sLbtnAdd.Click            
    For i As Integer = sLstbox.Items.Count - 1 To 0 Step -1
        If sLstbox.Items(i).Selected Then
            sLstbox.Items.Remove(sLstbox.Items(i))
        End If
    Next
End Sub