本文整理汇总了C#中System.Web.UI.IStateManager接口的典型用法代码示例。如果您正苦于以下问题:C# IStateManager接口的具体用法?C# IStateManager怎么用?C# IStateManager使用的例子?那么恭喜您, 这里精选的接口代码示例或许可以为您提供帮助。
IStateManager接口属于System.Web.UI命名空间,在下文中一共展示了IStateManager接口的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: MyItem
// Create a class that implements IStateManager so that
// it can manage its own view state.
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class MyItem : IStateManager
{
private string _message;
// The StateBag object that allows you to save
// and restore view-state information.
private StateBag _viewstate;
// The constructor for the MyItem class.
public MyItem(string mesg)
{
_message = mesg;
_viewstate = new StateBag();
_viewstate.Add("message", _message);
}
// Create a Message property that reads from and writes
// to view state. If the set accessor writes the message
// value to view state, the StateBag.SetItemDirty method
// is called, telling view state that the item has changed.
public string Message
{
get
{
return (string)_viewstate["message"];
}
set
{
_message = value;
_viewstate.SetItemDirty("message", true);
}
}
// Implement the LoadViewState method. If the saved view state
// exists, the view-state value is loaded to the MyItem control.
void IStateManager.LoadViewState(object savedState)
{
_message = (string)_viewstate["message"];
if (savedState != null)
((IStateManager)_viewstate).LoadViewState(savedState);
}
// Implement the SaveViewState method. If the StateBag
// that stores the MyItem class's view state contains
// a value for the message property and if the value
// has changed since the TrackViewState method was last
// called, all view state for this class is deleted,
// using the StateBag.Clear method,and the new value is added.
object IStateManager.SaveViewState()
{
// Check whether the message property exists in
// the ViewState property, and if it does, check
// whether it has changed since the most recent
// TrackViewState method call.
if (!((IDictionary)_viewstate).Contains("message") || _viewstate.IsItemDirty("message"))
{
_viewstate.Clear();
// Add the _message property to the StateBag.
_viewstate.Add("message", _message);
}
return ((IStateManager)_viewstate).SaveViewState();
}
// Implement the TrackViewState method for this class by
// calling the TrackViewState method of the class's private
// _viewstate property.
void IStateManager.TrackViewState()
{
((IStateManager)_viewstate).TrackViewState();
}
// Implement the IsTrackingViewState method for this class
// by calling the IsTrackingViewState method of the class's
// private _viewstate property.
bool IStateManager.IsTrackingViewState
{
get
{
return ((IStateManager)_viewstate).IsTrackingViewState;
}
}
// Create a function that iterates through the view-state
// values stored for this class and returns the
// results as a string.
public string EnumerateViewState()
{
string keyName, keyValue;
string result = String.Empty;
StateItem myStateItem;
IDictionaryEnumerator myDictionaryEnumerator = _viewstate.GetEnumerator();
while (myDictionaryEnumerator.MoveNext())
{
keyName = (string)myDictionaryEnumerator.Key;
myStateItem = (StateItem)myDictionaryEnumerator.Value;
keyValue = (string)myStateItem.Value;
result = result + "<br>ViewState[" + keyName + "] = " + keyValue;
}
return result;
}
}
开发者ID:.NET开发者,项目名称:System.Web.UI,代码行数:106,代码来源:IStateManager
注:本文中的System.Web.UI.IStateManager接口示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论