0
這是我的第一篇文章,所以請溫和。關於下面的標記和代碼(這全部在用戶控件中),這可以很好地開始。當我嘗試從窗體視圖呈現的列表中刪除多個項目時,會發生此問題。瀏覽器不刷新
我可以刪除一個項目,頁面重新加載,我刪除的項目不見了。如果我然後點擊另一個項目上的刪除,則根本沒有明顯的迴應。在後面的頁面中放置所有函數等的斷點表明它確實經歷了它應該做的所有事情,但是瀏覽器根本沒有顯示任何響應。如果我然後手動刷新瀏覽器,我刪除的第二個項目已經消失。
我真的需要讓瀏覽器刷新每次我點擊刪除,如果可能的話,我可以做的理解問題,請。我已經嘗試使用ViewStateMode =「禁用/啓用」在formview和中繼器分開和一起。
其他 - 我也試過禁用緩存。
在此先感謝。
<asp:FormView ID="fvDrugActiveSubstance" runat="server" DefaultMode="ReadOnly" UseSubmitBehavior="false" Width="100%">
<ItemTemplate>
<table style="border-collapse: collapse; border-spacing: 0;width: 100%;">
<tr>
<th style="width:80%;">Name</th>
<th style="width:10%;">Edit</th>
<th style="width:10%;">Delete</th>
</tr>
<asp:Repeater ID="rptrDrugActiveSubstance" runat="server" OnItemCommand="rptrDrugActiveSubstance_ItemCommand">
<ItemTemplate>
<tr class="view_table" style="">
<td>
<asp:Label Text='<%# Eval("ActiveSubstanceName") %>' ID="lblName" runat="server" />
<asp:Label Text='<%# Eval("DrugSafetyDrugCode") %>' ID="lblCode" runat="server" Visible="false" />
</td>
<td>
<img onclick='<%# String.Format("openDrugActiveSubstanceWindow({1},{0},\"Write\");return false;",((DrugActiveSubstance)Container.DataItem).DrugSafetyDrugCode.ToString(),((DrugActiveSubstance)Container.DataItem).DrugSafetyDrugActiveSubstanceCode) %>' src="/images/grid_icons/edit.png" style="cursor: pointer;" title="Edit" />
</td>
<td>
<asp:ImageButton ID="btnDelete" runat="server" CommandArgument='<%# Eval("DrugSafetyDrugActiveSubstanceCode") %>' style="cursor: pointer;" CommandName="cmd_delete" ImageUrl="~/images/grid_icons/Delete.gif" ToolTip="Delete" />
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr class="view_table_alt">
<td>
<asp:Label Text='<%# Eval("ActiveSubstanceName") %>' ID="lblName" runat="server" />
<asp:Label Text='<%# Eval("DrugSafetyDrugCode") %>' ID="lblCode" runat="server" Visible="false" />
</td>
<td>
<img onclick='<%# String.Format("openDrugActiveSubstanceWindow({1},{0},\"Write\");return false;",((DrugActiveSubstance)Container.DataItem).DrugSafetyDrugCode.ToString(),((DrugActiveSubstance)Container.DataItem).DrugSafetyDrugActiveSubstanceCode) %>' src="/images/grid_icons/edit.png" style="cursor: pointer;" title="Edit" />
</td>
<td id="tdDelete">
<asp:ImageButton ID="btnDelete" runat="server" CommandArgument='<%# Eval("DrugSafetyDrugActiveSubstanceCode") %>' style="cursor: pointer;" CommandName="cmd_delete" ImageUrl="~/images/grid_icons/Delete.gif" ToolTip="Delete" />
</td>
</tr>
</AlternatingItemTemplate>
</asp:Repeater>
</table>
</ItemTemplate>
</asp:FormView>
protected void rptrDrugActiveSubstance_ItemCommand(object source, RepeaterCommandEventArgs e)
{
drugSafetyService.DeleteDrugActiveSubstance(int.Parse(e.CommandArgument.ToString()));
Response.Redirect(HttpContext.Current.Request.Url.ToString().Split('?')[0] + "?#drugAS_accordian");
}
在Chrome上打開開發者工具,並檢查服務器的響應情況。檢查您的HTTP響應是否有任何變化。 – rpf
謝謝你。我試過了,第一次點擊(成功的)的結果爲200和304,然後(中止)第二次點擊的結果。除了顯而易見的情況外,我不知道這意味着什麼。我不明白是什麼流產或爲什麼。 – user1770738
304代表「未修改」(http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html),僅用於GET http響應。這意味着您正在執行GET,而不是POST。請在第一次點擊後檢查btnDelete按鈕的onclick屬性是什麼 – rpf