/
QueryableFilterUserControl.xml
354 lines (326 loc) · 20.9 KB
/
QueryableFilterUserControl.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
<Type Name="QueryableFilterUserControl" FullName="System.Web.DynamicData.QueryableFilterUserControl">
<TypeSignature Language="C#" Value="public abstract class QueryableFilterUserControl : System.Web.UI.UserControl" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit QueryableFilterUserControl extends System.Web.UI.UserControl" />
<TypeSignature Language="DocId" Value="T:System.Web.DynamicData.QueryableFilterUserControl" />
<TypeSignature Language="VB.NET" Value="Public MustInherit Class QueryableFilterUserControl
Inherits UserControl" />
<TypeSignature Language="F#" Value="type QueryableFilterUserControl = class
 inherit UserControl" />
<TypeSignature Language="C++ CLI" Value="public ref class QueryableFilterUserControl abstract : System::Web::UI::UserControl" />
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Web.UI.UserControl</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Provides a base class for filter controls.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The <xref:System.Web.DynamicData.QueryableFilterUserControl> class is the base class for user controls that render filters that can be plugged into the Dynamic Data filtering framework that is based on the <xref:System.Web.UI.WebControls.QueryExtender> class.
Implementers must override the <xref:System.Web.DynamicData.QueryableFilterUserControl.GetQueryable%2A> control, which can return a modified <xref:System.Linq.IQueryable> object that reflects the filter's state. The base class contains helper methods for building LINQ expression trees.
## Examples
A Visual Studio project with source code is available to accompany this topic: [Scaffolding Dynamic Data](https://go.microsoft.com/fwlink/?LinkId=168914).
]]></format>
</remarks>
<altmember cref="N:System.Linq" />
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected QueryableFilterUserControl ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.DynamicData.QueryableFilterUserControl.#ctor" />
<MemberSignature Language="VB.NET" Value="Protected Sub New ()" />
<MemberSignature Language="C++ CLI" Value="protected:
 QueryableFilterUserControl();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName Language="C#">[System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]</AttributeName>
</Attribute>
</Attributes>
<Parameters />
<Docs>
<summary>Initializes a new instance of the <see cref="T:System.Web.DynamicData.QueryableFilterUserControl" /> class.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ApplyEqualityFilter">
<MemberSignature Language="C#" Value="public static System.Linq.IQueryable ApplyEqualityFilter (System.Linq.IQueryable source, string propertyName, object value);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Linq.IQueryable ApplyEqualityFilter(class System.Linq.IQueryable source, string propertyName, object value) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.DynamicData.QueryableFilterUserControl.ApplyEqualityFilter(System.Linq.IQueryable,System.String,System.Object)" />
<MemberSignature Language="VB.NET" Value="Public Shared Function ApplyEqualityFilter (source As IQueryable, propertyName As String, value As Object) As IQueryable" />
<MemberSignature Language="F#" Value="static member ApplyEqualityFilter : System.Linq.IQueryable * string * obj -> System.Linq.IQueryable" Usage="System.Web.DynamicData.QueryableFilterUserControl.ApplyEqualityFilter (source, propertyName, value)" />
<MemberSignature Language="C++ CLI" Value="public:
 static System::Linq::IQueryable ^ ApplyEqualityFilter(System::Linq::IQueryable ^ source, System::String ^ propertyName, System::Object ^ value);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Linq.IQueryable</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="source" Type="System.Linq.IQueryable" />
<Parameter Name="propertyName" Type="System.String" />
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<param name="source">The source <see cref="T:System.Linq.IQueryable" /> object.</param>
<param name="propertyName">The name of the property.</param>
<param name="value">The value for the <paramref name="propertyName" /> parameter.</param>
<summary>Gets the transformed <see cref="T:System.Linq.IQueryable" /> object from the source <see cref="T:System.Linq.IQueryable" /> object.</summary>
<returns>The transformed <see cref="T:System.Linq.IQueryable" /> object from the source <see cref="T:System.Linq.IQueryable" /> object.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Column">
<MemberSignature Language="C#" Value="protected internal System.Web.DynamicData.MetaColumn Column { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Web.DynamicData.MetaColumn Column" />
<MemberSignature Language="DocId" Value="P:System.Web.DynamicData.QueryableFilterUserControl.Column" />
<MemberSignature Language="VB.NET" Value="Protected Friend ReadOnly Property Column As MetaColumn" />
<MemberSignature Language="F#" Value="member this.Column : System.Web.DynamicData.MetaColumn" Usage="System.Web.DynamicData.QueryableFilterUserControl.Column" />
<MemberSignature Language="C++ CLI" Value="protected public:
 property System::Web::DynamicData::MetaColumn ^ Column { System::Web::DynamicData::MetaColumn ^ get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName Language="C#">[get: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]</AttributeName>
<AttributeName Language="F#">[<get: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Web.DynamicData.MetaColumn</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the column to use for filtering.</summary>
<value>The column to use for filtering.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="DefaultValue">
<MemberSignature Language="C#" Value="public string DefaultValue { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance string DefaultValue" />
<MemberSignature Language="DocId" Value="P:System.Web.DynamicData.QueryableFilterUserControl.DefaultValue" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property DefaultValue As String" />
<MemberSignature Language="F#" Value="member this.DefaultValue : string" Usage="System.Web.DynamicData.QueryableFilterUserControl.DefaultValue" />
<MemberSignature Language="C++ CLI" Value="public:
 property System::String ^ DefaultValue { System::String ^ get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the default values that are mapped for the table.</summary>
<value>The default values that are mapped for the table.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
By default, Dynamic Data provides Boolean, foreign-key, and enumeration filter templates.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="DefaultValues">
<MemberSignature Language="C#" Value="public System.Collections.Generic.IDictionary<string,object> DefaultValues { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Collections.Generic.IDictionary`2<string, object> DefaultValues" />
<MemberSignature Language="DocId" Value="P:System.Web.DynamicData.QueryableFilterUserControl.DefaultValues" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property DefaultValues As IDictionary(Of String, Object)" />
<MemberSignature Language="F#" Value="member this.DefaultValues : System.Collections.Generic.IDictionary<string, obj>" Usage="System.Web.DynamicData.QueryableFilterUserControl.DefaultValues" />
<MemberSignature Language="C++ CLI" Value="public:
 property System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ DefaultValues { System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IDictionary<System.String,System.Object></ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the default values that are mapped for the table.</summary>
<value>The default values that are mapped for the table.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="FilterChanged">
<MemberSignature Language="C#" Value="public event EventHandler FilterChanged;" />
<MemberSignature Language="ILAsm" Value=".event class System.EventHandler FilterChanged" />
<MemberSignature Language="DocId" Value="E:System.Web.DynamicData.QueryableFilterUserControl.FilterChanged" />
<MemberSignature Language="VB.NET" Value="Public Custom Event FilterChanged As EventHandler " FrameworkAlternate="netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2" />
<MemberSignature Language="F#" Value="member this.FilterChanged : EventHandler " Usage="member this.FilterChanged : System.EventHandler " />
<MemberSignature Language="C++ CLI" Value="public:
 event EventHandler ^ FilterChanged;" />
<MemberSignature Language="VB.NET" Value="Public Event FilterChanged As EventHandler " FrameworkAlternate="netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1" />
<MemberType>Event</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.EventHandler</ReturnType>
</ReturnValue>
<Docs>
<summary>Occurs when the <see cref="M:System.Web.DynamicData.QueryableFilterUserControl.OnFilterChanged" /> method is called.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="FilterControl">
<MemberSignature Language="C#" Value="public virtual System.Web.UI.Control FilterControl { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Web.UI.Control FilterControl" />
<MemberSignature Language="DocId" Value="P:System.Web.DynamicData.QueryableFilterUserControl.FilterControl" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property FilterControl As Control" />
<MemberSignature Language="F#" Value="member this.FilterControl : System.Web.UI.Control" Usage="System.Web.DynamicData.QueryableFilterUserControl.FilterControl" />
<MemberSignature Language="C++ CLI" Value="public:
 virtual property System::Web::UI::Control ^ FilterControl { System::Web::UI::Control ^ get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Web.UI.Control</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the data control that handles the filter inside the filter template.</summary>
<value>The data control that handles the filter.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This property is `null` if the filter template does not override it.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="GetQueryable">
<MemberSignature Language="C#" Value="public abstract System.Linq.IQueryable GetQueryable (System.Linq.IQueryable source);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Linq.IQueryable GetQueryable(class System.Linq.IQueryable source) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.DynamicData.QueryableFilterUserControl.GetQueryable(System.Linq.IQueryable)" />
<MemberSignature Language="VB.NET" Value="Public MustOverride Function GetQueryable (source As IQueryable) As IQueryable" />
<MemberSignature Language="F#" Value="abstract member GetQueryable : System.Linq.IQueryable -> System.Linq.IQueryable" Usage="queryableFilterUserControl.GetQueryable source" />
<MemberSignature Language="C++ CLI" Value="public:
 abstract System::Linq::IQueryable ^ GetQueryable(System::Linq::IQueryable ^ source);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Linq.IQueryable</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="source" Type="System.Linq.IQueryable" />
</Parameters>
<Docs>
<param name="source">The source <see cref="T:System.Linq.IQueryable" /> object.</param>
<summary>Gets the transformed <see cref="T:System.Linq.IQueryable" /> object from the source <see cref="T:System.Linq.IQueryable" /> object.</summary>
<returns>The transformed <see cref="T:System.Linq.IQueryable" /> object from the source <see cref="T:System.Linq.IQueryable" /> object.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
You must implement this method if you derive a control from <xref:System.Web.DynamicData.QueryableFilterUserControl>.
## Examples
This method is implemented to transform the source <xref:System.Linq.IQueryable> object into the target <xref:System.Linq.IQueryable> object. Examples of <xref:System.Linq.IQueryable> expressions that you might want to implement include order by, range, or search.
The following example shows how to implement the <xref:System.Web.DynamicData.QueryableFilterUserControl.GetQueryable%2A> method for a Boolean filter that is derived from <xref:System.Web.DynamicData.QueryableFilterUserControl>.
```csharp
public override IQueryable GetQueryable(IQueryable source) {
if (String.IsNullOrEmpty(DropDownList1.SelectedValue)) {
return source;
}
bool value = Convert.ToBoolean(DropDownList1.SelectedValue);
ParameterExpression parameterExpression =
Expression.Parameter(source.ElementType, "item");
Expression body = BuildQueryBody(
parameterExpression, value);
LambdaExpression lambda = Expression.Lambda(body,
parameterExpression);
MethodCallExpression whereCall = Expression.Call(
typeof(Queryable),
"Where",
new Type[] { source.ElementType },
source.Expression, Expression.Quote(lambda));
return source.Provider.CreateQuery(whereCall);
}
```
```vb
Public Overloads Overrides Function GetQueryable(ByVal source As IQueryable) As IQueryable
If [String].IsNullOrEmpty(DropDownList1.SelectedValue) Then
Return source
End If
Dim value As Boolean = Convert.ToBoolean(DropDownList1.SelectedValue)
Dim parameterExpression As ParameterExpression = Expression.Parameter(source.ElementType, "item")
Dim body As Expression = BuildQueryBody(parameterExpression, value)
Dim lambda As LambdaExpression = Expression.Lambda(body, parameterExpression)
Dim whereCall As MethodCallExpression = Expression.[Call](GetType(Queryable), "Where", _
New Type() {source.ElementType}, source.Expression, Expression.Quote(lambda))
Return source.Provider.CreateQuery(whereCall)
End Function
```
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="OnFilterChanged">
<MemberSignature Language="C#" Value="protected void OnFilterChanged ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void OnFilterChanged() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.DynamicData.QueryableFilterUserControl.OnFilterChanged" />
<MemberSignature Language="VB.NET" Value="Protected Sub OnFilterChanged ()" />
<MemberSignature Language="F#" Value="member this.OnFilterChanged : unit -> unit" Usage="queryableFilterUserControl.OnFilterChanged " />
<MemberSignature Language="C++ CLI" Value="protected:
 void OnFilterChanged();" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Raises the <see cref="E:System.Web.DynamicData.QueryableFilterUserControl.FilterChanged" /> event.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Call this method when the filter selection has changed in order to notify the data source that the query must be re-run.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="PopulateListControl">
<MemberSignature Language="C#" Value="public void PopulateListControl (System.Web.UI.WebControls.ListControl listControl);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void PopulateListControl(class System.Web.UI.WebControls.ListControl listControl) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.DynamicData.QueryableFilterUserControl.PopulateListControl(System.Web.UI.WebControls.ListControl)" />
<MemberSignature Language="VB.NET" Value="Public Sub PopulateListControl (listControl As ListControl)" />
<MemberSignature Language="F#" Value="member this.PopulateListControl : System.Web.UI.WebControls.ListControl -> unit" Usage="queryableFilterUserControl.PopulateListControl listControl" />
<MemberSignature Language="C++ CLI" Value="public:
 void PopulateListControl(System::Web::UI::WebControls::ListControl ^ listControl);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web.DynamicData</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="listControl" Type="System.Web.UI.WebControls.ListControl" />
</Parameters>
<Docs>
<param name="listControl">A list control.</param>
<summary>Populates a list control with all the foreign-key elements or Boolean elements in the table.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Foreign-key columns are populated with elements from the foreign-key table. Boolean columns are populated with "All", "True", and "False".
]]></format>
</remarks>
</Docs>
</Member>
</Members>
</Type>