2016-05-10 43 views
0

私はリストボックスに項目を追加しようとしています。テキストボックスとボタンがあり、ユーザーがテキストボックスに何かを入力して追加すると、ページを更新せずにリストボックスに新しいアイテムを挿入したいと考えています。ここでASP.Net投稿することなく投稿する投稿を

は、私がこれまで持っているものです。

<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 

のですか?

+0

これはどうしたらうまくいかないのですか?何かエラーがありますか? – zgood

+0

@zgoodエラーなし、追加ボタンを押しても何も起こりません。 – Zoxac

+0

If Not IsPostBack()チェックを削除しようとしましたか?通常、これは 'Page_Load'イベントでのみ使用されます。ボタンクリックイベントは 'UpdatePanel'内にあるので非同期でなければなりません。しかし、私はこれがあなたの問題だとは思わない... – zgood

答えて

1

ボタンのクリックイベントであなたのIf Not IsPostBack() Thenチェックを削除します。 IsPostBack()は、通常、Page_Loadイベントでのみ使用されます。あなたのボタンはUpdatePanelに含まれているので、clickイベントは非同期でなければならず、ポストバックは発生しません。