<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx</link><description>Dynamic Data provides a good architecture for adding custom filters to your application. To read more about understanding filtering read the following post In this post I am going to take you through a walkthrough of how you can write your own search</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10213378</link><pubDate>Mon, 19 Sep 2011 10:04:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10213378</guid><dc:creator>Kushi Bobby</dc:creator><description>&lt;p&gt;Hi, Pranav,&lt;/p&gt;
&lt;p&gt;When i click &amp;quot;here&amp;quot; this is the link its opening &amp;#39;&lt;a rel="nofollow" target="_new" href="https://skydrive.live.com/embedicon.aspx/Public/Samples/TextSearchFilter?cid=43459a6389a804d9&amp;amp;sc=documents&amp;quot;"&gt;skydrive.live.com/.../TextSearchFilter&lt;/a&gt; and showing page cannot be displayed.&lt;/p&gt;
&lt;p&gt;Anyway can u pls update me whether using FilterUIHint(“Search”) in VS2008 is possible?&lt;/p&gt;
&lt;p&gt;When i google it comes under V4.0 &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10213378" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10213307</link><pubDate>Mon, 19 Sep 2011 05:52:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10213307</guid><dc:creator>pranav rastogi</dc:creator><description>&lt;p&gt;Kushi,&lt;/p&gt;
&lt;p&gt;can you please try again. I just tried the link and it is accessible.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10213307" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10213249</link><pubDate>Mon, 19 Sep 2011 01:40:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10213249</guid><dc:creator>Kushi Bobby</dc:creator><description>&lt;p&gt;Hi, Having problem in downloading Search.ascx control, can you pls provide alternate location to get it.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10213249" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10147214</link><pubDate>Tue, 29 Mar 2011 15:44:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10147214</guid><dc:creator>olle</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Thanks for a very good post.&lt;/p&gt;
&lt;p&gt;I have a question though, I have downloaded and added the &amp;quot;Search&amp;quot; FilterUserControl, but how do I use it? I want the textbox search instead of a dropdown list used in this code:¨&lt;/p&gt;
&lt;p&gt;&amp;lt;asp:FilterRepeater ID=&amp;quot;FilterRepeater&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ItemTemplate&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;asp:Label runat=&amp;quot;server&amp;quot; Text=&amp;#39;&amp;lt;%# Eval(&amp;quot;DisplayName&amp;quot;) %&amp;gt;&amp;#39; AssociatedControlID=&amp;quot;DynamicFilter$DropDownList1&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;asp:DynamicFilter runat=&amp;quot;server&amp;quot; ID=&amp;quot;DynamicFilter&amp;quot; OnSelectedIndexChanged=&amp;quot;OnFilterSelectedIndexChanged&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/ItemTemplate&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/asp:FilterRepeater&amp;gt;&lt;/p&gt;
&lt;p&gt;How do I rewrite the above code to use the &amp;quot;Search&amp;quot; user control (textbox + button) instead of the dropdownlist above? I know I have to tie the Search user control to one or multiple database columns, but at the moment I cannot see the textbox.&lt;/p&gt;
&lt;p&gt;Would be grateful for advice.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10147214" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10141214</link><pubDate>Tue, 15 Mar 2011 09:52:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10141214</guid><dc:creator>mb</dc:creator><description>&lt;p&gt;Thanks for the code :)&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t get it to work though:&lt;/p&gt;
&lt;p&gt;I added the Search.aspx, Search.aspx.cs, Search.aspx.designer.cs etc and in Annotations.cs I set&lt;/p&gt;
&lt;p&gt;public class Customer_ReportingMetaData&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[DisplayName(&amp;quot;Customer Id&amp;quot;)]&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[UIHint(&amp;quot;TextReadOnly&amp;quot;)]&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[FilterUIHint(&amp;quot;Search&amp;quot;)]&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int CustomerId { get; set; }&lt;/p&gt;
&lt;p&gt;it compiles but the search textbox is not showing up, what magic is it that will show it?&lt;/p&gt;
&lt;p&gt;I guess I&amp;#39;m missing something.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10141214" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10141076</link><pubDate>Tue, 15 Mar 2011 04:21:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10141076</guid><dc:creator>ocking</dc:creator><description>&lt;p&gt;Hi mb. &amp;nbsp;FYR below. &amp;nbsp;It is a integer exact match&lt;/p&gt;
&lt;p&gt;Any experts can advise the case insensitive search ? many thx&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;public override IQueryable GetQueryable(IQueryable source)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int searchInt = &amp;nbsp;0 ;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Match DB Column Type = Integer&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Column.TypeCode != TypeCode.Int32)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return source;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (String.IsNullOrEmpty(TextBox1.Text))&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return source;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (int.TryParse(TextBox1.Text, out searchInt) == false)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TextBox1.ToolTip = &amp;quot;Input correct code&amp;quot;;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Type type = typeof(Int32);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string searchProperty = Column.DisplayName;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstantExpression searchFilter = Expression.Constant(searchInt);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ParameterExpression parameter = Expression.Parameter(source.ElementType);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MemberExpression property = Expression.Property(parameter, this.Column.Name);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Nullable.GetUnderlyingType(property.Type) != null)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;property = Expression.Property(property, &amp;quot;Value&amp;quot;);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MethodInfo method = typeof(Int32).GetMethod(&amp;quot;Equals&amp;quot;, new[] { typeof(Int32) });&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var containsMethodExp = Expression.Call(property, method, searchFilter);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var containsLambda = Expression.Lambda(containsMethodExp, parameter);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var resultExpression = Expression.Call(typeof(Queryable), &amp;quot;Where&amp;quot;, new Type[] { source.ElementType }, source.Expression, Expression.Quote(containsLambda));&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return source.Provider.CreateQuery(resultExpression);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;protected void Page_Load(object sender, EventArgs e)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.TextBox1.ToolTip = this.Column.DisplayName;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.validator.ErrorMessage = &amp;quot;Invalid number format specified for &amp;quot; +&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.Column.DisplayName;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.validator.ToolTip = this.validator.ErrorMessage;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;protected void Validate(object sender, ServerValidateEventArgs e)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;int value;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.IsValid = int.TryParse(e.Value, out value);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10141076" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10140886</link><pubDate>Mon, 14 Mar 2011 18:57:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10140886</guid><dc:creator>mb</dc:creator><description>&lt;p&gt;Can you do the same for an int column?&lt;/p&gt;
&lt;p&gt;Thanks for a great article.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10140886" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10140605</link><pubDate>Mon, 14 Mar 2011 09:57:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10140605</guid><dc:creator>ocking</dc:creator><description>&lt;p&gt;Hi pranav,&lt;/p&gt;
&lt;p&gt;You have a great work and have a top rank in google search&lt;/p&gt;
&lt;p&gt;I’ve deployed your coding but it is a case sensitive search&lt;/p&gt;
&lt;p&gt;How can I use case in-sensitive search ? Please kindly advise.&lt;/p&gt;
&lt;p&gt;System.StringComparison.OrdinalIgnoreCase&lt;/p&gt;
&lt;p&gt;Thank you so much&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10140605" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10114361</link><pubDate>Tue, 11 Jan 2011 20:45:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10114361</guid><dc:creator>WesSmith100</dc:creator><description>&lt;p&gt;I forgot to mention I did have to change one line to get it to compile (I&amp;#39;m using pre-release 4 of DD4 because I can&amp;#39;t get the admins to install .NET 40 yet)&lt;/p&gt;
&lt;p&gt;Changed: &lt;/p&gt;
&lt;p&gt;Expression.Parameter(source.ElementType);&lt;/p&gt;
&lt;p&gt;to: &lt;/p&gt;
&lt;p&gt;Expression.Parameter(source.ElementType, string.Empty);&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10114361" width="1" height="1"&gt;</description></item><item><title>re: Text Filtering with Dynamic Data</title><link>http://blogs.msdn.com/b/pranav_rastogi/archive/2010/10/03/text-filtering-with-dynamic-data.aspx#10114354</link><pubDate>Tue, 11 Jan 2011 20:38:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10114354</guid><dc:creator>WesSmith100</dc:creator><description>&lt;p&gt;Thanks, worked for me first try :-)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10114354" width="1" height="1"&gt;</description></item></channel></rss>