Hi,
I have a simple grid with only one button to delete a row.
I try all example that a found (demo, forum, etc...) but it's the same.
The row is well deleted from the database but the grid is not update .
The method RadGrid1_NeedDataSource is well called after the delete method and the ViewState is well changed!
If i reload completely the page i see off course the change.
Please help;-)
Grid code :
Here is my C# code. I don't work with DataTable!
I have a simple grid with only one button to delete a row.
I try all example that a found (demo, forum, etc...) but it's the same.
The row is well deleted from the database but the grid is not update .
The method RadGrid1_NeedDataSource is well called after the delete method and the ViewState is well changed!
If i reload completely the page i see off course the change.
Please help;-)
Grid code :
<asp:Panel ID="PanelOverviewPollAdvice" runat="server" SkinID="PageContent"> |
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="RadGrid1"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1"/> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="75px" Width="75px" Transparency="25"><img alt="Loading..." src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading.gif") %>' style="border:0;" /></telerik:RadAjaxLoadingPanel> |
<br /> |
<telerik:RadGrid ID="RadGrid1" runat="server" Skin="Vista" |
GridLines="None" |
AllowPaging="True" |
AllowSorting="True" |
Width="100%" |
AutoGenerateColumns="False" |
OnNeedDataSource="RadGrid1_NeedDataSource" |
AllowFilteringByColumn="true" |
PageSize="20" OnInit="RadGrid1_Init" |
OnItemCreated="RadGrid1_ItemCreated" |
OnDeleteCommand="RadGrid1_DeleteCommand" |
AllowAutomaticDeletes="true"> |
<PagerStyle AlwaysVisible="True" Mode="Slider" /> |
<MasterTableView |
GridLines="None" |
Width="100%" |
DataKeyNames="PollAdvisId" |
IsFilterItemExpanded="true" |
AllowFilteringByColumn="true"> |
<RowIndicatorColumn><HeaderStyle Width="22px" /> |
</RowIndicatorColumn> |
<ExpandCollapseColumn><HeaderStyle Width="22px" /> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridBoundColumn AllowFiltering="false" UniqueName="PollAdvisId" HeaderText="ID" DataField="PollAdvisId" ItemStyle-HorizontalAlign="Left"> |
<HeaderStyle Width="30px" HorizontalAlign="Left" /> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn UniqueName="Email" HeaderText="E-mail" DataField="Email" ItemStyle-HorizontalAlign="Left"> |
<HeaderStyle HorizontalAlign="Left" /> |
<ItemStyle HorizontalAlign="Left" /> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn UniqueName="Advis" HeaderText="Advies" DataField="Advis" ItemStyle-HorizontalAlign="Left"> |
<HeaderStyle HorizontalAlign="Left" /> |
<ItemStyle HorizontalAlign="Left" /> |
</telerik:GridBoundColumn> |
<telerik:GridDateTimeColumn UniqueName="LastUpdate" HeaderText="Datum" DataField="LastUpdate" ItemStyle-HorizontalAlign="Left" DataType="System.DateTime" DataFormatString="{0:dd MM yyyy}"> |
<HeaderStyle HorizontalAlign="Left" /> |
<ItemStyle HorizontalAlign="Left" /> |
</telerik:GridDateTimeColumn> |
<telerik:GridButtonColumn UniqueName="DeleteColumn" Text="Delete" |
CommandName="Delete" ButtonType="ImageButton" |
ConfirmText="Do you want to delete this Pool advies?" |
ConfirmDialogType="RadWindow" ConfirmTitle="Delete" |
ItemStyle-HorizontalAlign="Left" Visible="true" HeaderText="Wissen"> |
<ItemStyle HorizontalAlign="Left" /> |
</telerik:GridButtonColumn> |
</Columns> |
</MasterTableView><FilterMenu EnableTheming="True" Skin="Vista"><CollapseAnimation Duration="200" Type="OutQuint" /></FilterMenu></telerik:RadGrid> |
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" Skin="Vista"></telerik:RadWindowManager> |
</asp:Panel> |
Here is my C# code. I don't work with DataTable!
/// <summary> |
/// |
/// </summary> |
private void LoadGrid() |
{ |
var pollAdvice = new Business.PollAdvis(); |
List<Business.PollAdvis> _list = pollAdvice.SelectAll(); |
ViewState["PollAdviceList"] = _list; |
RadGrid1.DataSource = _list; |
RadGrid1.MasterTableView.DataKeyNames = new[] { "PollAdvisId" }; |
RadGrid1.DataBind(); |
} |
/// <summary> |
/// Delete an pollAdvice |
/// </summary> |
/// <param name="sender">object</param> |
/// <param name="e">GridItemEventArgs</param> |
protected void RadGrid1_DeleteCommand(object sender, GridCommandEventArgs e) |
{ |
var item = (GridDataItem)e.Item; |
string pollAdviceIdStr = item.OwnerTableView.DataKeyValues[item.ItemIndex]["PollAdvisId"].ToString(); |
int _pollAdviceId = int.Parse(pollAdviceIdStr); |
var _pollAdvice = new Business.PollAdvis(_pollAdviceId); |
if (ViewState["PollAdviceList"] != null) |
{ |
var _list = (List<Business.PollAdvis>) ViewState["PollAdviceList"]; |
_list.Remove(_pollAdvice); |
ViewState["PollAdviceList"] = _list; |
} |
_pollAdvice.Delete(_pollAdviceId); |
} |
/// <summary> |
/// |
/// </summary> |
/// <param name="source">object</param> |
/// <param name="ex">GridNeedDataSourceEventArgs</param> |
protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs ex) |
{ |
if (ViewState["PollAdviceList"] != null) |
{ |
var _list = (List<Business.PollAdvis>)ViewState["PollAdviceList"]; |
RadGrid1.DataSource = _list; |
} |
} |