You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,52 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Web.DynamicData.Util;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Diagnostics;
|
||||
using System.Web.UI.WebControls.Expressions;
|
||||
|
||||
namespace System.Web.DynamicData {
|
||||
/// <summary>
|
||||
/// This class is an QueryExtender-based equivalent of DynamicQueryStringParameters.
|
||||
/// When applied to a data source it will filter the data by the value of a primary key encoded
|
||||
/// in the requests query string (or potentially routing if complex routes are used). If ColumnName
|
||||
/// is specified it will retrieve the values
|
||||
/// </summary>
|
||||
public class DynamicRouteExpression : DataSourceExpression {
|
||||
private PropertyExpression _expression = new PropertyExpression();
|
||||
|
||||
/// <summary>
|
||||
/// An optional column name that can be used to change the filtering mode (i.e. filter by foreign key instead
|
||||
/// of primary key).
|
||||
/// </summary>
|
||||
[DefaultValue("")]
|
||||
public string ColumnName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// See base class.
|
||||
/// </summary>
|
||||
public override void SetContext(Control owner, HttpContext context, IQueryableDataSource dataSource) {
|
||||
base.SetContext(owner, context, dataSource);
|
||||
|
||||
owner.Page.InitComplete += new EventHandler(Page_InitComplete);
|
||||
}
|
||||
|
||||
void Page_InitComplete(object sender, EventArgs e) {
|
||||
Debug.Assert(DataSource != null);
|
||||
var table = DataSource.GetMetaTable();
|
||||
|
||||
IEnumerable<Parameter> parameters = RouteParametersHelper.GetColumnParameters(table, ColumnName);
|
||||
parameters.ToList().ForEach(p => _expression.Parameters.Add(p));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// See base class.
|
||||
/// </summary>
|
||||
public override IQueryable GetQueryable(IQueryable source) {
|
||||
return _expression.GetQueryable(source);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user