2013-10-16 99 views
0

如何從asp:Repeater刪除項目?目前,我有中繼器下面的代碼:使用jQuery從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

如果您轉換了表單,那麼它將再次綁定數據,所以如果記錄仍然存在,它將被重新生成 – DavidB

+1

您可以粘貼完整的aspx和javascript部分嗎? –

+0

把年代碼放在文件準備好功能上。 –

回答

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

你非常歡迎 – geevee

0

它可能不起作用,因爲在Document.Ready函數調用完成執行後,中繼器項目被添加到DOM。

如果您的中繼器在頁面加載完成後提取數據,請考慮使用Jquery's on() methoddelegate method