Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.
=============================
I am doing this on click of custom links on my page. and event handler for the links as follows
==============================
CODE BEHIND ASPX.CS
protected
override void OnLoad(EventArgs e)
{
base.OnLoad(e);
DayLink.ServerClick += new EventHandler(DayLink_ServerClick);
WeekLink.ServerClick += new EventHandler(WeekLink_ServerClick);
MonthLink.ServerClick += new EventHandler(MonthLink_ServerClick);
}
void MonthLink_ServerClick(object sender, EventArgs e)
{
SchedulerSelectedView = SchedulerViewType.MonthView;
}
void WeekLink_ServerClick(object sender, EventArgs e)
{
SchedulerSelectedView = SchedulerViewType.WeekView;
}
void DayLink_ServerClick(object sender, EventArgs e)
{
SchedulerSelectedView = SchedulerViewType.DayView;
}
public SchedulerViewType SchedulerSelectedView
{
set { timeBlockRadSchedulerControl.SelectedView = value; }
get { return timeBlockRadSchedulerControl.SelectedView; }
}
==============================****************************************************************************
ASPX PAGE
==============================
<body style="background-color:Silver" >
<form runat="server">
<rad:RadScriptManager ID="scriptManager" runat="server" AsyncPostBackTimeout="5000">
<Scripts>
<asp:ScriptReference Path="../../../common/includes/JavaScript/AJAXClientEvents.js" />
</Scripts>
</rad:RadScriptManager>
<div class="FloatRightDiv">
<a runat="server" href="#" id="DayLink">Day</a>
<a id="WeekLink" runat="server" >Week</a>
<a id="MonthLink" runat="server" >Month</a>
</div>
<rad:RadScheduler ID="timeBlockRadSchedulerControl" runat="server" Height="100" Width="100" SelectedView="MonthView" DataKeyField="PrimaryKey" DataSubjectField="DisplayName" DataStartField="StartDate" DataEndField="AppointmentEndDate" >
<appointmenttemplate>
<div id="recurrenceDiv" runat="server">
<div class="rsAptTermsOfCourt">
<asp:Label ID="timeBlockNameLabel" runat="server" Text="TT"></asp:Label>
<asp:Label ID="appointmentTimeLabel" runat="server" Text="10:20 PM"></asp:Label>
<asp:Label ID="subjectapptLabel" runat="server" Text="Subject"></asp:Label>
</div>
</div>
</appointmenttemplate>
</rad:RadScheduler>
</form>
</body>
========================***************************************************************************************
<telerik:GridHyperLinkColumn DataNavigateUrlFields="EmployeeId,CertComplete" DataTextField="EmployeeId"
DataTextFormatString="Edit/Update" UniqueName="EmployeeCert"
DataNavigateUrlFormatString="~/employee/employeesert.aspx?employeeId={0}&isCertComplete={1}"
HeaderText="Certificate" >
<HeaderStyle Width="10%"></HeaderStyle>
<ItemStyle VerticalAlign="Top" HorizontalAlign="Center" />
</telerik:GridHyperLinkColumn>
I want "Edit/update" to be unclickable or hidden when CertComplete is false?
Can i manage to do this from client side
Can i set visible = '{1}' in the client side
If not how can i manage this for each row in the grid from server side.
Thanks
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebDesigner.WebForm3" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadAjaxManager
ID
=
"AjaxManager"
runat
=
"server"
DefaultLoadingPanelID
=
"AjaxLoadingPanel"
EnableViewState
=
"false"
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"AjaxLoadingPanel"
Skin
=
"Windows7"
EnableViewState
=
"false"
runat
=
"server"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadSplitter
ID
=
"viewSplitter"
BorderStyle
=
"None"
PanesBorderSize
=
"0"
runat
=
"server"
Skin
=
"Windows7"
>
<
telerik:RadPane
runat
=
"Server"
ID
=
"catalogsPane"
Width
=
"240px"
MinWidth
=
"100"
EnableViewState
=
"false"
>
<
telerik:RadTabStrip
ID
=
"RadTabStrip1"
runat
=
"server"
SelectedIndex
=
"1"
MultiPageID
=
"RadMultiPage1"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Tree"
Selected
=
"True"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
ID
=
"RadMultiPage1"
runat
=
"server"
>
<
telerik:RadPageView
ID
=
"RadPageView1"
Selected
=
"true"
runat
=
"server"
>
<
div
runat
=
"server"
id
=
"container"
>
<
div
>tree:</
div
>
<
telerik:RadTreeView
runat
=
"server"
ID
=
"treeControl2"
OnNodeExpand
=
"CatalogTree_ExpandNode"
OnLoad
=
"CatalogTree_Load"
NodeClick
=
"CatalogTree_NodeClick"
>
</
telerik:RadTreeView
>
</
div
>
</
telerik:RadPageView
>
</
telerik:RadMultiPage
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
<
div
runat
=
"server"
id
=
"Div1"
>
</
div
>
</
form
>
</
body
>
</
html
>
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Web.UI;
using Telerik.Web.UI;
namespace WebDesigner
{
public partial class WebForm3 : Page
{
private readonly List<
SiteDataItem
> _siteData = new List<
SiteDataItem
>();
protected override void OnInit(EventArgs e)
{
InitSiteData();
container.Controls.Add(treeControl2);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
AjaxManager.AjaxSettings.AddAjaxSetting(treeControl2, treeControl2, AjaxLoadingPanel);
}
private static RadTreeNode CreateTreeNode(SiteDataItem item)
{
return new RadTreeNode
{
Text = item.Text,
Value = item.ID.ToString(CultureInfo.InvariantCulture),
ExpandMode = TreeNodeExpandMode.ServerSide
};
}
private void LoadNodes(IRadTreeNodeContainer treeControl, IRadTreeNodeContainer root, int? parentIdent)
{
var controlNodes = root == null ? treeControl.Nodes : root.Nodes;
foreach (var item in this._siteData)
{
if (parentIdent == item.ParentID)
{
var nodeControl = CreateTreeNode(item);
controlNodes.Add(nodeControl);
}
}
}
protected void CatalogTree_NodeClick(object sender, RadTreeNodeEventArgs e)
{
throw new NotImplementedException();
}
protected void CatalogTree_Load(object sender, EventArgs e)
{
// make root nodes
if (!Page.IsPostBack)
{
var treeControl = sender as RadTreeView;
if (treeControl != null)
{
LoadNodes(treeControl, null, null);
}
}
}
protected void CatalogTree_ExpandNode(object sender, RadTreeNodeEventArgs e)
{
if (e.Node.Nodes.Count == 0)
{
LoadNodes(sender as IRadTreeNodeContainer, e.Node, Int32.Parse(e.Node.Value));
}
}
private void InitSiteData()
{
this._siteData.Add(new SiteDataItem(1, null, "Products"));
this._siteData.Add(new SiteDataItem(2, 1, "RadControls for ASP.NET Ajax"));
this._siteData.Add(new SiteDataItem(3, 1, "RadControls for Silverlight"));
this._siteData.Add(new SiteDataItem(4, 2, "RadGrid"));
this._siteData.Add(new SiteDataItem(5, 2, "RadScheduler"));
this._siteData.Add(new SiteDataItem(6, 2, "RadEditor"));
this._siteData.Add(new SiteDataItem(7, 3, "RadGrid"));
this._siteData.Add(new SiteDataItem(8, 3, "RadMenu"));
this._siteData.Add(new SiteDataItem(9, 3, "RadEditor"));
}
}
#region Support
internal class SiteDataItem
{
private string _text;
private int _id;
private int? _parentId;
public string Text
{
get { return _text; }
set { _text = value; }
}
public int ID
{
get { return _id; }
set { _id = value; }
}
public int? ParentID
{
get { return _parentId; }
set { _parentId = value; }
}
public SiteDataItem(int id, int? parentId, string text)
{
_id = id;
_parentId = parentId;
_text = text;
}
}
#endregion
}
function showContextMenu(sender, e) {
var RadList = $find("Listbox");
var RadListSelected = RadList.get_selectedItem();
var menu = $find("cm1");
var rawEvent = e.get_domEvent().rawEvent;
menu.show(rawEvent);
e.get_item().select(); < ERROR is called on this item because object is nothing
$telerik.cancelRawEvent(rawEvent);
}
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
RecurrenceEditor2.RecurrenceRuleText = TextBox1.Text
TextBox2.Text =
"Done"
End Sub
<telerik:GridTemplateColumn UniqueName="Template1" GroupByExpression = "Febrero"> |
<ItemTemplate> |
<asp:HyperLink ID="targetControl" runat="server" NavigateUrl="#" Text='<%# Eval("Febrero") %>'></asp:HyperLink> |
</ItemTemplate> |
<FooterTemplate> |
<asp:HyperLink runat="server" ID="TextBox2"> |
</asp:HyperLink> |
<telerik:GridGroupPanel> |
<PanelItemsStyle Height="200" BackColor="Aquamarine" /> |
</telerik:GridGroupPanel> |
</FooterTemplate> |
</telerik:GridTemplateColumn> |
protected void tk_Grid_ItemDataBound(object sender, GridItemEventArgs e) |
{ |
if (e.Item is GridDataItem) |
{ |
GridDataItem dataItem = (GridDataItem)e.Item; |
sum += double.Parse((dataItem["Template1"].FindControl("targetControl") as HyperLink).Text); |
} |
else if (e.Item is GridFooterItem) |
{ |
GridFooterItem footer = (GridFooterItem)e.Item; |
(footer["Template1"].FindControl("TextBox2") as HyperLink).Text = sum.ToString(); |
FooterTotals = (footer["Template1"].FindControl("TextBox2") as HyperLink).Text; |
} |
} |
_combo.ID =
"servicedd"
+
this
.QuestionIDJavascriptFriendly;
_combo.WebServiceSettings.Path =
this
.WebServicePath;
_combo.WebServiceSettings.Method =
this
.WebMethod;
_combo.EnableLoadOnDemand =
true
;
_combo.EnableItemCaching =
true
;
_combo.AllowCustomText =
true
;
_combo.Filter = RadComboBoxFilter.Contains;
_combo.MaxHeight =
new
Unit(300, UnitType.Pixel);
_combo.CollapseAnimation.Type = AnimationType.None;
_combo.ExpandAnimation.Type = AnimationType.None;
_combo.EnableViewState = _viewstate;