Удалить элемент из Asp: Repeater с помощью jQuery

0

Как удалить элемент из asp: Repeater? На данный момент у меня есть следующий код для ретранслятора:

<asp:Repeater ID="uxRolesList" runat="server">
    <ItemTemplate>                       
        <div id="<%# GetRolesDivId() %>">
            <asp:TextBox ID="uxTxtBoxRole" runat="server" rows="5" columns="100" Text='<%# Container.DataItem %>' TextMode="multiline" MaxLength="2000"></asp:TextBox>
            <asp:Button ID="uxRemoveRoleBtn" Style="vertical-align:top;" CssClass="remove-roles-btn" runat="server" Text="X" />
            <br />
            <asp:RequiredFieldValidator runat="server" ID="uxValTxtBoxRole" ControlToValidate="uxTxtBoxRole" ErrorMessage="Please complete this role requirement"></asp:RequiredFieldValidator>
            <br /><br />
        </div>
    </ItemTemplate>
</asp:Repeater>     

Что должно выводить что-то вроде этого:

<div id="roles-1">
    <textarea name="ctl00$mainContent$uxRolesList$ctl01$uxTxtBoxRole" rows="5" cols="100" id="ctl00_mainContent_uxRolesList_ctl01_uxTxtBoxRole">Quick test</textarea>                          <input type="submit" name="ctl00$mainContent$uxRolesList$ctl01$uxRemoveRoleBtn" value="X" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$mainContent$uxRolesList$ctl01$uxRemoveRoleBtn&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_mainContent_uxRolesList_ctl01_uxRemoveRoleBtn" class="remove-roles-btn" style="vertical-align:top;" />
    <br />
    <span id="ctl00_mainContent_uxRolesList_ctl01_uxValTxtBoxRole" class="error" style="color:#891F11;display:none;">Please complete this role requirement</span>
    <br /><br />
</div>

И я использую следующий jQuery для "удаления" элемента при нажатии кнопки удаления:

$("#roles-" + roleIdNumber).remove();
e.preventDefault();
rolesCounter--;

Где roleIdNumber - 1 в этом случае.

Но когда я отправляю форму, элемент все еще появляется - может ли кто-нибудь помочь мне с тем, что происходит?

  • 0
    если вы повторно разместили форму, то она снова будет связана с данными, поэтому, если запись все еще существует, она будет восстановлена
  • 1
    Не могли бы вы вставить полный раздел aspx и javascript?
Показать ещё 1 комментарий
Теги:

2 ответа

0
Лучший ответ

я предлагаю заменить:

<div id="<%# GetRolesDivId() %>">

с:

<div id="<%# GetRolesDivId() %>" class="div_row">

и эта строка:

<asp:Button ID="uxRemoveRoleBtn" Style="vertical-align:top;" CssClass="remove-roles-btn" runat="server" Text="X" />

с:

<input type="button" style="vertical-align:top;" value="X" class="remove-roles-btn" onclick="$(this).parents('.div_row').remove();rolesCounter--;" />

и удалите все js-коды, которые вы поделили здесь.

надеюсь, что это помогло.

  • 0
    Ты гений - спасибо!
  • 0
    всегда пожалуйста
0

Вероятно, он не работает, потому что элементы повторителя добавляются в DOM после завершения вызова функции Document.Ready.

Если ваш повторитель извлекает данные после завершения загрузки страницы, рассмотрите возможность использования метода Jquery on() или метода делегата.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню