我在更新面板中有一个网格视图,删除记录后不会刷新。
<ajax:UpdatePanel ID="SearchResultAjax" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:GridView runat="server" ID="mwOffersGrid" AutoGenerateColumns="False" Width="100%" DataKeyNames="OfferId" OnRowCommand="mwOffersGrid_RowCommand"   
    <Columns>
        <asp:TemplateField HeaderText="Offer #">
        <ItemTemplate>
            <asp:HyperLink runat="server" ID="offerIdLink" NavigateUrl='<%# String.Format("/Admin/Marketing/MWOffers/EditOffer.aspx?OfferId={0}",Eval("OfferId")) %>'
            Text='<%# Eval("OfferId") %>' />
        </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemStyle HorizontalAlign="Right" Wrap="false" />
            <ItemTemplate>
            <asp:ImageButton ID="EditButton" runat="server" CommandName="EditOffer" CommandArgument='<%# Eval("OfferId") %>' ToolTip="Edit" SkinID="EditIcon" />
            <asp:ImageButton ID="DeleteButton" runat="server" CommandName="DeleteOffer" CommandArgument='<%# Eval("OfferId") %>'  ToolTip="Delete"
            SkinID="DeleteIcon" OnClientClick='<%# Eval("OfferId", "return confirm(\"Are you sure you want to delete Offer # {0}?\")") %>' />
            </ItemTemplate>
    </asp:TemplateField>
    </Columns>
</asp:GridView>
</ContentTemplate>
</ajax:UpdatePanel>
代码背后
protected void Page_Load(object sender, EventArgs e)
  {
    MWOffersCollection OffersCollection = MWOffersDataSource.LoadForCriteria(SqlCriteria, "OfferPageType ASC, OrderBy ASC");
    if (!Page.IsPostBack)
    {
      if (OffersCollection != null)
      {
            BindGrid();
      }
    }
  }
  public void BindGrid()
  {
    mwOffersGrid.DataSource = OffersCollection;
    mwOffersGrid.DataBind();
  }
protected void mwOffersGrid_RowCommand(object sender, GridViewCommandEventArgs e)
  {
    switch (e.CommandName)
    {
    case "EditOffer":
        var offerId = AlwaysConvert.ToInt(e.CommandArgument);
        Response.Redirect(string.Format("~/Admin/Marketing/MWOffers/EditOffer.aspx?OfferId={0}", offerId));
        break;
    case "DeleteOffer":
          var id = AlwaysConvert.ToInt(e.CommandArgument);
                    OffersCollection.Cast<MWOffers>().Single(o => o.OfferId == id).IsValid = false;
                    OffersCollection.Save();
                    BindGrid();
                    break;
        break;
    }
  }