ASP.Net将项目添加到列表框而不发布

时间:2016-05-10 16:51:59

标签: asp.net vb.net listbox

我正在尝试将项目添加到列表框中。我有一个文本框和一个按钮,当用户在文本框中输入内容并点击添加时,我想在没有页面刷新的情况下在列表框中插入新项目。

这是我到目前为止所做的:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
              <div class="col-xs-6 text-center">

                    <asp:Label ID="empid" runat="server" Text="Employee ID" CssClass="label-default label "></asp:Label>
                    <asp:TextBox ID="txtEmployeeID" runat="server" CssClass="form-control"></asp:TextBox>

                    <div class="col-xs-6">
                        <asp:Button ID="btnAddEmp" runat="server" Text="Add Emp" CssClass="btn btn-primary top-buffer" Width="100%" />
                    </div>

                    <div class="col-xs-6">
                        <asp:Button ID="btnRemoveEmp" runat="server" Text="Remove Emp" CssClass="btn btn-danger top-buffer" Width="100%" />
                    </div>

                    <asp:ListBox ID="listEmps" runat="server"
                        CssClass="top-buffer add-height"
                        Width="100%"
                        ValidationGroup="req"></asp:ListBox>

                </div>

            </ContentTemplate>
        </asp:UpdatePanel>

这是我的按钮点击事件

Protected Sub btnAddEmp_Click(sender As Object, e As EventArgs) Handles btnAddEmp.Click
 If Not IsPostBack() Then

    If listEmps.Items.Count = 0 Then
        listEmps.Items.Add(txtEmployeeID.Text)
    Else

        'check list to see if employee already exists
        For i = listEmps.Items.Count - 1 To 0 Step -1
            If RTrim(txtEmployeeID.Text) = RTrim(listEmps.Items(i).ToString) Then

                'employee already exists within list
                Response.Write("<script>alert('Employee ID " & txtEmployeeID.Text.Trim & " has already been added. ')</script>")

                txtEmployeeID.Text = ""
                Exit Sub
            End If
        Next

        'add to list
        listEmps.Items.Add(txtEmployeeID.Text)
    End If

 End If
End Sub

如何在不刷新页面的情况下将项目正确添加到列表框?

1 个答案:

答案 0 :(得分:1)

删除按钮点击事件中的If Not IsPostBack() Then支票。 IsPostBack()通常仅用于Page_Load事件。由于您的按钮包含在UpdatePanel中,因此点击事件应该是异步的,并且不会导致回发。