我在更新面板中有一个网格视图,删除记录后不会刷新。
<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;
}
}