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; |
| } |
| } |