Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / ObjectListField.cs / 1305376 / ObjectListField.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Security.Permissions;
namespace System.Web.UI.MobileControls
{
/*
* Object List Field class.
*
* Copyright (c) 2000 Microsoft Corporation
*/
///
[
PersistName("Field")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
public sealed class ObjectListField : IStateManager
{
private StateBag _stateBag = new StateBag();
private bool _marked;
private PropertyDescriptor _dataFieldDescriptor;
private ObjectList _owner;
private bool _selfReference = false;
///
[
DefaultValue("")
]
public String Name
{
get
{
String s = (String)ViewState["Name"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["Name"] = value;
}
}
///
[
DefaultValue("")
]
public String DataField
{
get
{
String s = (String)ViewState["DataField"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["DataField"] = value;
NotifyOwnerChange();
}
}
///
[
DefaultValue("")
]
public String DataFormatString
{
get
{
String s = (String)ViewState["DataFormatString"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["DataFormatString"] = value;
NotifyOwnerChange();
}
}
///
[
DefaultValue("")
]
public String Title
{
get
{
String s = (String)ViewState["Title"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["Title"] = value;
}
}
///
[
DefaultValue(true)
]
public bool Visible
{
get
{
Object b = ViewState["Visible"];
return (b == null) ? true : (bool)b;
}
set
{
ViewState["Visible"] = value;
}
}
internal bool SelfReference
{
get
{
return _selfReference;
}
set
{
_selfReference = value;
}
}
internal String UniqueID
{
get
{
Object o = ViewState["Name"];
if (o != null)
{
return (String)o;
}
return (String)ViewState["DataField"];
}
}
private void NotifyOwnerChange()
{
// Only called if databinding behavior of the field changes.
if (_owner != null)
{
_owner.OnFieldChanged(false); // fieldAddedOrRemoved = false;
}
}
private StateBag ViewState
{
get
{
return _stateBag;
}
}
internal void SetOwner(ObjectList owner) {
_owner = owner;
}
///
public void DataBindItem(int fieldIndex, ObjectListItem item)
{
Object dataItem = item.DataItem;
if (dataItem == null)
{
return;
}
if (!SelfReference)
{
String dataField = DataField;
if (dataField.Length == 0)
{
return;
}
_dataFieldDescriptor = TypeDescriptor.GetProperties(dataItem).Find(dataField, true);
if (_dataFieldDescriptor == null && !_owner.MobilePage.DesignMode)
{
throw new Exception(
SR.GetString(SR.ObjectListField_DataFieldNotFound, dataField));
}
}
Object data;
if (_dataFieldDescriptor != null)
{
data = _dataFieldDescriptor.GetValue(dataItem);
}
// Use fake databound text if the datasource is not accessible at designtime.
else if (_owner.MobilePage.DesignMode)
{
data = SR.GetString(SR.ObjectListField_DataBoundText);
}
else
{
Debug.Assert(SelfReference, "Shouldn't get this far if !SelfReference");
data = dataItem;
}
String dataText;
if ((data != null) && (data != System.DBNull.Value))
{
String dataFormatString = DataFormatString;
if (dataFormatString.Length > 0)
{
dataText = String.Format(CultureInfo.InvariantCulture, dataFormatString, data);
}
else
{
dataText = data.ToString();
}
}
else
{
dataText = String.Empty;
}
item[fieldIndex] = dataText;
}
/////////////////////////////////////////////////////////////////////////
// STATE MANAGEMENT
/////////////////////////////////////////////////////////////////////////
///
///
bool IStateManager.IsTrackingViewState
{
get
{
return _marked;
}
}
///
///
void IStateManager.TrackViewState()
{
_marked = true;
((IStateManager)ViewState).TrackViewState();
}
///
///
void IStateManager.LoadViewState(Object state)
{
if (state != null)
{
((IStateManager)ViewState).LoadViewState(state);
}
}
///
///
Object IStateManager.SaveViewState()
{
return ((IStateManager)ViewState).SaveViewState();
}
internal void SetDirty()
{
// VSWHIDBEY 236464. The bag needs to be set dirty not individual items.
_stateBag.SetDirty(true);
/*
foreach (StateItem item in _stateBag.Values)
{
item.IsDirty = true;
}
*/
}
internal void ClearViewState()
{
ViewState.Clear();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Security.Permissions;
namespace System.Web.UI.MobileControls
{
/*
* Object List Field class.
*
* Copyright (c) 2000 Microsoft Corporation
*/
///
[
PersistName("Field")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
public sealed class ObjectListField : IStateManager
{
private StateBag _stateBag = new StateBag();
private bool _marked;
private PropertyDescriptor _dataFieldDescriptor;
private ObjectList _owner;
private bool _selfReference = false;
///
[
DefaultValue("")
]
public String Name
{
get
{
String s = (String)ViewState["Name"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["Name"] = value;
}
}
///
[
DefaultValue("")
]
public String DataField
{
get
{
String s = (String)ViewState["DataField"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["DataField"] = value;
NotifyOwnerChange();
}
}
///
[
DefaultValue("")
]
public String DataFormatString
{
get
{
String s = (String)ViewState["DataFormatString"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["DataFormatString"] = value;
NotifyOwnerChange();
}
}
///
[
DefaultValue("")
]
public String Title
{
get
{
String s = (String)ViewState["Title"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["Title"] = value;
}
}
///
[
DefaultValue(true)
]
public bool Visible
{
get
{
Object b = ViewState["Visible"];
return (b == null) ? true : (bool)b;
}
set
{
ViewState["Visible"] = value;
}
}
internal bool SelfReference
{
get
{
return _selfReference;
}
set
{
_selfReference = value;
}
}
internal String UniqueID
{
get
{
Object o = ViewState["Name"];
if (o != null)
{
return (String)o;
}
return (String)ViewState["DataField"];
}
}
private void NotifyOwnerChange()
{
// Only called if databinding behavior of the field changes.
if (_owner != null)
{
_owner.OnFieldChanged(false); // fieldAddedOrRemoved = false;
}
}
private StateBag ViewState
{
get
{
return _stateBag;
}
}
internal void SetOwner(ObjectList owner) {
_owner = owner;
}
///
public void DataBindItem(int fieldIndex, ObjectListItem item)
{
Object dataItem = item.DataItem;
if (dataItem == null)
{
return;
}
if (!SelfReference)
{
String dataField = DataField;
if (dataField.Length == 0)
{
return;
}
_dataFieldDescriptor = TypeDescriptor.GetProperties(dataItem).Find(dataField, true);
if (_dataFieldDescriptor == null && !_owner.MobilePage.DesignMode)
{
throw new Exception(
SR.GetString(SR.ObjectListField_DataFieldNotFound, dataField));
}
}
Object data;
if (_dataFieldDescriptor != null)
{
data = _dataFieldDescriptor.GetValue(dataItem);
}
// Use fake databound text if the datasource is not accessible at designtime.
else if (_owner.MobilePage.DesignMode)
{
data = SR.GetString(SR.ObjectListField_DataBoundText);
}
else
{
Debug.Assert(SelfReference, "Shouldn't get this far if !SelfReference");
data = dataItem;
}
String dataText;
if ((data != null) && (data != System.DBNull.Value))
{
String dataFormatString = DataFormatString;
if (dataFormatString.Length > 0)
{
dataText = String.Format(CultureInfo.InvariantCulture, dataFormatString, data);
}
else
{
dataText = data.ToString();
}
}
else
{
dataText = String.Empty;
}
item[fieldIndex] = dataText;
}
/////////////////////////////////////////////////////////////////////////
// STATE MANAGEMENT
/////////////////////////////////////////////////////////////////////////
///
///
bool IStateManager.IsTrackingViewState
{
get
{
return _marked;
}
}
///
///
void IStateManager.TrackViewState()
{
_marked = true;
((IStateManager)ViewState).TrackViewState();
}
///
///
void IStateManager.LoadViewState(Object state)
{
if (state != null)
{
((IStateManager)ViewState).LoadViewState(state);
}
}
///
///
Object IStateManager.SaveViewState()
{
return ((IStateManager)ViewState).SaveViewState();
}
internal void SetDirty()
{
// VSWHIDBEY 236464. The bag needs to be set dirty not individual items.
_stateBag.SetDirty(true);
/*
foreach (StateItem item in _stateBag.Values)
{
item.IsDirty = true;
}
*/
}
internal void ClearViewState()
{
ViewState.Clear();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ConstructorBuilder.cs
- ContainerParaClient.cs
- DataColumnMappingCollection.cs
- ParameterExpression.cs
- Section.cs
- MSAAEventDispatcher.cs
- MaskedTextProvider.cs
- SqlTypesSchemaImporter.cs
- ExpressionsCollectionConverter.cs
- ConstrainedDataObject.cs
- MimeImporter.cs
- HttpClientCertificate.cs
- SamlSecurityToken.cs
- AggregateNode.cs
- CreateSequence.cs
- SqlResolver.cs
- WindowsImpersonationContext.cs
- Debugger.cs
- XmlHelper.cs
- Crc32.cs
- Stream.cs
- ADRole.cs
- FileUtil.cs
- TextEditorDragDrop.cs
- WebBodyFormatMessageProperty.cs
- KeyEventArgs.cs
- QuaternionAnimationUsingKeyFrames.cs
- ScriptModule.cs
- VectorCollectionConverter.cs
- MasterPageBuildProvider.cs
- TreeIterator.cs
- SqlCommand.cs
- ParameterSubsegment.cs
- JsonFormatGeneratorStatics.cs
- HierarchicalDataSourceControl.cs
- WebPartConnectVerb.cs
- TextElementAutomationPeer.cs
- FontFaceLayoutInfo.cs
- GCHandleCookieTable.cs
- WindowsToolbarItemAsMenuItem.cs
- ParsedRoute.cs
- InOutArgumentConverter.cs
- FontCollection.cs
- DockProviderWrapper.cs
- DataSetMappper.cs
- PropagatorResult.cs
- WebHttpSecurity.cs
- Clock.cs
- PreviewPageInfo.cs
- AsymmetricAlgorithm.cs
- objectresult_tresulttype.cs
- LifetimeManager.cs
- ParserContext.cs
- NavigatingCancelEventArgs.cs
- FamilyTypefaceCollection.cs
- BlockCollection.cs
- NativeMethods.cs
- DataKey.cs
- PlatformNotSupportedException.cs
- CompilerTypeWithParams.cs
- ReaderWriterLockWrapper.cs
- FileSystemInfo.cs
- ManagedFilter.cs
- CommonDialog.cs
- ForeignConstraint.cs
- XLinq.cs
- WebColorConverter.cs
- SamlAudienceRestrictionCondition.cs
- DataGridTable.cs
- EnumerableWrapperWeakToStrong.cs
- Stack.cs
- _NtlmClient.cs
- PriorityBinding.cs
- TableRow.cs
- GridViewRowPresenterBase.cs
- Light.cs
- StrokeCollection.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- _ChunkParse.cs
- X509UI.cs
- RemoteWebConfigurationHostStream.cs
- QueryStringConverter.cs
- safex509handles.cs
- WorkflowRuntimeServiceElement.cs
- EntityDataSourceViewSchema.cs
- SafeEventLogWriteHandle.cs
- ScopeCollection.cs
- ExtendedPropertyDescriptor.cs
- FileUtil.cs
- SqlParameterizer.cs
- DataGridColumnHeaderAutomationPeer.cs
- SqlParameter.cs
- ConfigurationSettings.cs
- InvalidFilterCriteriaException.cs
- TreeNodeConverter.cs
- CompModSwitches.cs
- StatusBarPanelClickEvent.cs
- SqlDataSourceEnumerator.cs
- PropertyTabAttribute.cs
- DataSpaceManager.cs