diff --git a/djblets/static/djblets/js/configForms/views/listItemView.js b/djblets/static/djblets/js/configForms/views/listItemView.js
index 8892aefc60cf4e407fa1d2b3ea0e84392e09bc8b..b0548721f39c6d45e55311626420620db1075488 100644
--- a/djblets/static/djblets/js/configForms/views/listItemView.js
+++ b/djblets/static/djblets/js/configForms/views/listItemView.js
@@ -17,9 +17,9 @@ Djblets.Config.ListItemView = Backbone.View.extend({
 
     template: _.template([
         '<% if (editURL) { %>',
-        ' <a href="<%- editURL %>"><%- text %></a>',
+        '<a href="<%- editURL %>"><%- text %></a>',
         '<% } else { %>',
-        ' <%- text %>',
+        '<%- text %>',
         '<% } %>'
     ].join('')),
 
@@ -136,6 +136,7 @@ Djblets.Config.ListItemView = Backbone.View.extend({
     _showActionDropdown: function(action, $action) {
         var actionPos = $action.position(),
             $pane = $('<ul/>')
+                .addClass('action-menu')
                 .move(actionPos.left + $action.getExtents('m', 'l'),
                       actionPos.top + $action.outerHeight(),
                       'absolute')
diff --git a/djblets/static/djblets/js/configForms/views/listView.js b/djblets/static/djblets/js/configForms/views/listView.js
index 999e4358436515159bab443d7fed508693b3978d..3e6149ed248b9e4a979f87cbcbb4950094ec81ce 100644
--- a/djblets/static/djblets/js/configForms/views/listView.js
+++ b/djblets/static/djblets/js/configForms/views/listView.js
@@ -21,9 +21,11 @@ Djblets.Config.ListView = Backbone.View.extend({
 
         this.ItemView = options.ItemView || Djblets.Config.ListItemView;
 
-        this.listenTo(collection, 'add', this._addItem);
-        this.listenTo(collection, 'remove', this._removeItem);
-        this.listenTo(collection, 'reset', this.render);
+        this.once('rendered', function() {
+            this.listenTo(collection, 'add', this._addItem);
+            this.listenTo(collection, 'remove', this._removeItem);
+            this.listenTo(collection, 'reset', this._renderItems);
+        }, this);
     },
 
     /*
@@ -42,8 +44,10 @@ Djblets.Config.ListView = Backbone.View.extend({
      * This will loop through all items and render each one.
      */
     render: function() {
-        this.$listBody = this.getBody().empty();
-        this.model.collection.each(this._addItem, this);
+        this.$listBody = this.getBody();
+
+        this._renderItems();
+        this.trigger('rendered');
 
         return this;
     },
@@ -66,5 +70,14 @@ Djblets.Config.ListView = Backbone.View.extend({
      */
     _removeItem: function(item, collection, options) {
         this.$listBody.children().eq(options.index).remove();
+    },
+
+    /*
+     * Renders all items from the list.
+     */
+    _renderItems: function() {
+        this.$listBody.empty();
+
+        this.model.collection.each(this._addItem, this);
     }
 });
