2009-12-02 51 views
0

好的,我在我的页面上有一个超链接,超链接保存在用户控件中。当用户点击该链接,它被用来在页面上删除项目,所以:最好的刷新方式页面

<a href='<%#string.Format("{0}?removeItem=true&ItemID={1}", CurrentPage, Container.DataItem.Id)%>'>Remove this item</a> 

链接的点击,我的用户控制检查,为的removeItem布尔,如果代码隐藏设置为true ,删除该项目:

 removeSavedItem = Convert.ToBoolean(Request["removeItem"]); 

     if(removeItem) 
      RemoveItem(); 

而且这里是我的removeItem()方法:

protected void RemovItem() 
    { 
     int itemID = Util.ParamVal("savedItemID", 0); 

     if (itemID > 0) 
      service.RemoveItem(itemID); 
    } 

但我需要我的页面刷新,因为它删除它,但我的中继器没有显示与项目的列表除去。什么是最好的方法来解决这个问题?只是重做一下重发器还是有更清晰的方法?也许这只是标准的方式?我用这种方法删除后重新绑定?

+0

其实啊,我会因为我是重定向在Page_Load中执行此删除操作。因此,删除后页面不会刷新更新后的绑定。 – PositiveGuy 2009-12-02 15:43:15

+0

如果我像linkBut​​ton一样使用,请在其事件上调用方法,然后页面会刷新。因此,使用标准的超链接,并且抓取查询字符串并执行操作并不会执行相同的操作,您必须在处理它之后重定向。 – PositiveGuy 2009-12-02 15:44:10

+0

我很困惑,你怎么知道从Repeater控件中删除了哪个项目。因为,我没有看到你传递任何ID或索引值。 – azamsharp 2009-12-02 15:57:14

回答

0

我更喜欢重定向回到同一页面。

Response.Redirect(Request.Path); 
0

为什么不在会话中保存已删除的项目,以便刷新不会拿起它们呢?

0

这与PAH和查询

Response.Redirect(Request.Url.PathAndQuery); 
1

我建议不妨ajaxify拆除的项目,除非你在页面中改变了一大堆东西。

作为一个回答你的问题,你可以做Response.Redirect(Request.Url.ToString()); 柜面你想从JavaScript做任何理由再使用window.location.reload();

感谢