0

这是我的第一篇文章,所以请温柔。关于下面的标记和代码(这都在用户控件内),这很好用。当我尝试从表单视图呈现的列表中删除多个项目时,就会出现问题。

我可以删除一个项目,然后页面重新加载,我删除的项目消失了。如果我然后在另一个项目上单击删除,则根本没有明显的响应。在后面页面中的所有函数等上放置断点表明它确实完成了它应该做的所有事情,但浏览器根本没有显示任何响应。如果我随后手动刷新浏览器,我删除的第二个项目就消失了。

每次单击删除时,我真的需要让浏览器刷新,如果可能的话,我可以理解这个问题。我已经尝试在表单视图和转发器中分别和一起使用 ViewStateMode="Disabled/Enabled" 。

附加 - 我也尝试过禁用缓存。

提前致谢。

<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");
}
4

1 回答 1

0

我要把这个记下来作为经验。找到导致中止的 javascript 函数后,问题现已解决。

于 2013-10-11T07:43:51.797 回答