Hi Team,
Always problems with RadGrids in admin side. This time is with pagin and automatic edit/update. I use one RadGrid ajaxified server side radgrid inside News Module Edit/Insert Template. The Dataset is external data. I need to load and update one Dataset and after store. The Dataset is loading and the RadGrid is paging, but if you try to edit or Update any items the pager it come back to the first page and one item in the first at same level is edited or updated. I use preconised RadGrid Automatic sample and this issue has beed submit to RadGrid Forum but not found solution. Only items of first page can be Edited or Updated. I really need some help to fix this problem.
Help.
Always problems with RadGrids in admin side. This time is with pagin and automatic edit/update. I use one RadGrid ajaxified server side radgrid inside News Module Edit/Insert Template. The Dataset is external data. I need to load and update one Dataset and after store. The Dataset is loading and the RadGrid is paging, but if you try to edit or Update any items the pager it come back to the first page and one item in the first at same level is edited or updated. I use preconised RadGrid Automatic sample and this issue has beed submit to RadGrid Forum but not found solution. Only items of first page can be Edited or Updated. I really need some help to fix this problem.
<telerik:RadGrid
ID="PlanGrid" runat="server" Skin="WebBlue" GridLines="None"
Width="100%" OnNeedDataSource="PlanGrid_NeedDataSource"
OnItemCreated="PlanGrid_ItemCreated" OnUpdateCommand="PlanGrid_UpdateCommand" AutoGenerateColumns="False" AllowMultiRowEdit="True" ShowStatusBar="true" AllowPaging="True">
<MasterTableView DataKeyNames="Week" Width="100%" CommandItemDisplay="Top" EditMode="InPlace" PageSize="14">
<Columns>
<telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn">
<HeaderTemplate>
<asp:CheckBox id="headerChkbox" OnCheckedChanged="ToggleSelectedState" AutoPostBack="True" runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True" runat="server"></asp:CheckBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn UniqueName="Week" SortExpression="Week" HeaderText="Sem." ReadOnly="true" DataField="Week" />
<telerik:GridBoundColumn UniqueName="devise" SortExpression="devise" HeaderText="devise." ReadOnly="true"DataField="devise" />
<telerik:GridBoundColumn UniqueName="Days_1d" HeaderText="Price"
DataField="Days_1d" >
<ItemStyle Width="100px" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="Days_promo" HeaderText="Discount(%)"
DataField="Days_promo" DataType="System.Int32">
<ItemStyle Width="70px" />
</telerik:GridBoundColumn>
<telerik:GridEditCommandColumn UpdateText="Update" UniqueName="EditCommandColumn"
CancelText="Cancel" EditText="Edit">
<HeaderStyle Width="85px"></HeaderStyle>
</telerik:GridEditCommandColumn>
</Columns>
<EditFormSettings CaptionFormatString="Semana {0}" CaptionDataField="Week" >
<FormTableItemStyle Width="100px" Height="29px"></FormTableItemStyle>
<FormTableStyle GridLines="None" CellSpacing="0" CellPadding="2"></FormTableStyle>
<FormStyle Width="100%" BackColor="#eef2ea"></FormStyle>
<EditColumn ButtonType="ImageButton" />
</EditFormSettings>
</MasterTableView>
<ClientSettings EnableRowHoverStyle="true">
</ClientSettings>
<PagerStyle Mode="NumericPages"></PagerStyle>
</telerik:RadGrid>
OnItemCreated="PlanGrid_ItemCreated" OnUpdateCommand="PlanGrid_UpdateCommand" AutoGenerateColumns="False" AllowMultiRowEdit="True" ShowStatusBar="true" AllowPaging="True">
<MasterTableView DataKeyNames="Week" Width="100%" CommandItemDisplay="Top" EditMode="InPlace" PageSize="14">
<Columns>
<telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn">
<HeaderTemplate>
<asp:CheckBox id="headerChkbox" OnCheckedChanged="ToggleSelectedState" AutoPostBack="True" runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True" runat="server"></asp:CheckBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn UniqueName="Week" SortExpression="Week" HeaderText="Sem." ReadOnly="true" DataField="Week" />
<telerik:GridBoundColumn UniqueName="devise" SortExpression="devise" HeaderText="devise." ReadOnly="true"DataField="devise" />
<telerik:GridBoundColumn UniqueName="Days_1d" HeaderText="Price"
DataField="Days_1d" >
<ItemStyle Width="100px" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="Days_promo" HeaderText="Discount(%)"
DataField="Days_promo" DataType="System.Int32">
<ItemStyle Width="70px" />
</telerik:GridBoundColumn>
<telerik:GridEditCommandColumn UpdateText="Update" UniqueName="EditCommandColumn"
CancelText="Cancel" EditText="Edit">
<HeaderStyle Width="85px"></HeaderStyle>
</telerik:GridEditCommandColumn>
</Columns>
<EditFormSettings CaptionFormatString="Semana {0}" CaptionDataField="Week" >
<FormTableItemStyle Width="100px" Height="29px"></FormTableItemStyle>
<FormTableStyle GridLines="None" CellSpacing="0" CellPadding="2"></FormTableStyle>
<FormStyle Width="100%" BackColor="#eef2ea"></FormStyle>
<EditColumn ButtonType="ImageButton" />
</EditFormSettings>
</MasterTableView>
<ClientSettings EnableRowHoverStyle="true">
</ClientSettings>
<PagerStyle Mode="NumericPages"></PagerStyle>
</telerik:RadGrid>
Page load (old issue fixed by ivan link the ajaxmanager to ajaxify)
RadAjaxManager ajaxManager = RadAjaxManager.GetCurrent(this.Page);
if (ajaxManager != null)
{
ajaxManager.AjaxSettings.Clear();
ajaxManager.AjaxSettings.AddAjaxSetting(PlanGrid, PlanGrid);
}
protected
void PlanGrid_NeedDataSource(object source,
Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
this.PlanGrid.DataSource = PlanningData;
//is a Dataset
}
protected void
PlanGrid_ItemPreRender(object sender, EventArgs e)
{
((sender as
GridDataItem)["CheckBoxTemplateColumn"].FindControl("CheckBox1") as
CheckBox).Checked = (sender as GridDataItem).Selected;
}
protected void ToggleRowSelection(object
sender, EventArgs e)
{
((sender as CheckBox).Parent.Parent as
GridItem).Selected = (sender as CheckBox).Checked;
}
protected void ToggleSelectedState(object
sender, EventArgs e)
{
if ((sender as CheckBox).Checked == true)
{
foreach (GridDataItem
dataItem in PlanGrid.MasterTableView.Items)
{
(dataItem.FindControl("CheckBox1")
as CheckBox).Checked = true;
dataItem.Selected = true;
}
}
else
{
foreach (GridDataItem dataItem in PlanGrid.MasterTableView.Items)
{
(dataItem.FindControl("CheckBox1")
as CheckBox).Checked = false;
dataItem.Selected =
false;
}
}
}
protected void PlanGrid_UpdateCommand(object source,
Telerik.Web.UI.GridCommandEventArgs e)
{
PlanGrid.MasterTableView.EditMode =
GridEditMode.EditForms;
GridEditableItem eeditedItem = e.Item as
GridEditableItem;
GridEditManager editMan =
editedItem.EditManager;
foreach (GridColumn column in
e.Item.OwnerTableView.RenderColumns)
{
if (column is
IGridEditableColumn)
{
IGridEditableColumn
editableCol = (column as IGridEditableColumn);
if
(editableCol.IsEditable)
{
IGridColumnEditor editor
= editMan.GetColumnEditor(editableCol);
string editoreditorType =
editor.ToString();
string editorText =
"unknown";
object editorValue = null;
if (editor is
GridTextColumnEditor)
{
editorText =
(editor as GridTextColumnEditor).Text;
editorValue =
(editor as GridTextColumnEditor).Text;
}
if (editor is
GridBoolColumnEditor)
{
editorText =
(editor as GridBoolColumnEditor).Value.ToString();
editorValue =
(editor as GridBoolColumnEditor).Value;
}
if (editor is
GridDropDownColumnEditor)
{
editorText =
(editor as GridDropDownColumnEditor).SelectedText + "; " +
(editor as GridDropDownColumnEditor).SelectedValue;
editorValue =
(editor as GridDropDownColumnEditor).SelectedValue;
}
try
{
DataRow[]
changedRows = PlanningData.Tables[0].Select("Week= " +
editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["Week"]);
changedRows[0][column.UniqueName]
= editorValue;
PlanningData.Tables[0].AcceptChanges();
}
catch (Exception ex)
{
PlanGrid.Controls.Add(new
LiteralControl("<
strong
>Error
'" + column.UniqueName + "'</
strong
> - " + ex.Message));
e.Canceled = true;
break;
}
}
}
}
editedItem.Edit = false;
}
Help.