XmlDataFileEditor Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Provides a design-time user interface for selecting an XML data file.
public ref class XmlDataFileEditor : System::Web::UI::Design::UrlEditor
public class XmlDataFileEditor : System.Web.UI.Design.UrlEditor
type XmlDataFileEditor = class
inherit UrlEditor
Public Class XmlDataFileEditor
Inherits UrlEditor
- Inheritance
Examples
The following code example demonstrates how to associate an instance of the XmlDataFileEditor class with a property that is contained within a custom control. When the control property is edited on the design surface, the XmlDataFileEditor class provides the user interface to select and edit an XML file name for the property value.
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
using System.IO;
namespace ControlDesignerSamples.CS
{
// Define a simple text control, derived from the
// System.Web.UI.WebControls.Label class.
[
Designer(typeof(TextControlDesigner))
]
public class SimpleTextControl : Label
{
// Define a private member to store the file name value in the control.
private string _filename = "";
private string _internalText = "";
// Define the public XML data file name property. Indicate that the
// property can be edited at design-time with the XmlDataFileEditor class.
[EditorAttribute(typeof(System.Web.UI.Design.XmlDataFileEditor),
typeof(System.Drawing.Design.UITypeEditor))]
public string XmlFileName
{
get
{
return _filename;
}
set
{
_filename = value;
}
}
// Define a property that returns the timestamp
// for the selected file.
public string LastChanged
{
get
{
if ((_filename != null) && (_filename.Length > 0))
{
if (File.Exists(_filename))
{
DateTime lastChangedStamp = File.GetLastWriteTime(_filename);
return lastChangedStamp.ToLongDateString();
}
}
return "";
}
}
// Override the control Text property, setting the default
// text to the LastChanged string value for the selected
// file name. If the file name has not been set in the
// design view, then default to an empty string.
public override string Text
{
get
{
if ((_internalText == "") && (LastChanged.Length > 0))
{
// If the internally stored value hasn't been set,
// and the file name property has been set,
// return the last changed timestamp for the file.
_internalText = LastChanged;
}
return _internalText;
}
set
{
if ((value != null) && (value.Length > 0))
{
_internalText = value;
}
else {
_internalText = "";
}
}
}
}
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Imports System.IO
Namespace ControlDesignerSamples.VB
' Define a simple text control, derived from the
' System.Web.UI.WebControls.Label class.
<Designer(GetType(TextControlDesigner))> _
Public Class SimpleTextControl
Inherits Label
' Define a private member to store the file name value in the control.
Private _filename As String = ""
Private _internalText As String = ""
' Define the public XML data file name property. Indicate that the
' property can be edited at design-time with the XmlDataFileEditor class.
<EditorAttribute(GetType(System.Web.UI.Design.XmlDataFileEditor), _
GetType(System.Drawing.Design.UITypeEditor))> _
Public Property XmlFileName() As String
Get
Return _filename
End Get
Set(ByVal value As String)
_filename = value
End Set
End Property
' Define a property that returns the timestamp
' for the selected file.
Public ReadOnly Property LastChanged() As String
Get
If Not _filename Is Nothing AndAlso _filename.Length > 0 Then
If File.Exists(_filename) Then
Dim lastChangedStamp As DateTime
lastChangedStamp = File.GetLastWriteTime(_filename)
Return lastChangedStamp.ToLongDateString()
End If
End If
Return String.Empty
End Get
End Property
' Override the control Text property, setting the default
' text to the LastChanged string value for the selected
' file name. If the file name has not been set in the
' design view, then default to an empty string.
Public Overrides Property Text() As String
Get
If _internalText.Length = 0 And LastChanged.Length > 0 Then
' If the internally stored value hasn't been set,
' and the file name property has been set,
' return the last changed timestamp for the file.
_internalText = LastChanged
End If
Return _internalText
End Get
Set(ByVal value As String)
If Not value Is Nothing AndAlso value.Length > 0 Then
_internalText = value
Else
_internalText = String.Empty
End If
End Set
End Property
End Class
End Namespace
Remarks
An XmlDataFileEditor object is used at design time to select and edit a URL for an XML data file (.xml), and then assign the URL to a control property. For example, the XmlDataSource control uses the XmlDataFileEditor class at design time to set the value of the DataFile property.
Use the EditorAttribute attribute to associate the XmlDataFileEditor with a property. When the associated property is edited on the design surface, the designer host calls the EditValue method. The EditValue method uses the BuildUrl method, which in turn displays a user interface for selecting the URL, and then returns the URL that is selected by the user. The GetEditStyle method indicates the display style of the user interface.
Derive a class from the XmlDataFileEditor to define a custom editor for an XML data property. For example, a derived class can override the EditValue method, and then call the BuildUrl method with a custom Filter or Caption value.
Constructors
XmlDataFileEditor() |
Initializes a new instance of the XmlDataFileEditor class. |
Properties
Caption |
Gets the caption to display on the selection dialog box. |
Filter |
Gets the URL filter options for the editor, which is used to filter the items that appear in the URL selection dialog box. |
IsDropDownResizable |
Gets a value indicating whether drop-down editors should be resizable by the user. (Inherited from UITypeEditor) |
Options |
Gets the options for the URL builder to use. (Inherited from UrlEditor) |
Methods
EditValue(IServiceProvider, Object) |
Edits the value of the specified object using the editor style indicated by the GetEditStyle() method. (Inherited from UITypeEditor) |
EditValue(ITypeDescriptorContext, IServiceProvider, Object) |
Edits the value of the specified object using the editor style provided by the GetEditStyle(ITypeDescriptorContext) method. (Inherited from UrlEditor) |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetEditStyle() |
Gets the editor style used by the EditValue(IServiceProvider, Object) method. (Inherited from UITypeEditor) |
GetEditStyle(ITypeDescriptorContext) |
Gets the editing style of the EditValue(ITypeDescriptorContext, IServiceProvider, Object) method. (Inherited from UrlEditor) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetPaintValueSupported() |
Indicates whether this editor supports painting a representation of an object's value. (Inherited from UITypeEditor) |
GetPaintValueSupported(ITypeDescriptorContext) |
Indicates whether the specified context supports painting a representation of an object's value within the specified context. (Inherited from UITypeEditor) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
PaintValue(Object, Graphics, Rectangle) |
Paints a representation of the value of the specified object to the specified canvas. (Inherited from UITypeEditor) |
PaintValue(PaintValueEventArgs) |
Paints a representation of the value of an object using the specified PaintValueEventArgs. (Inherited from UITypeEditor) |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
Applies to
See also
.NET