<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2760789613387826548</id><updated>2024-09-02T11:03:23.958+03:00</updated><category term="asp.net"/><category term=".NET Framework 4.0"/><category term="custom control"/><category term="datagridview filter"/><category term="mikrotik"/><category term="networking"/><category term="scripting"/><category term="sqldatasource filter"/><category term="table filter"/><category term="twitter"/><title type='text'>Ammar Tawabini&#39;s blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ammar.tawabini.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2760789613387826548/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://ammar.tawabini.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/04514480962238495780</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2760789613387826548.post-6518157406564961324</id><published>2018-02-09T19:13:00.000+03:00</published><updated>2018-02-10T01:07:34.935+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asp.net"/><category scheme="http://www.blogger.com/atom/ns#" term="mikrotik"/><category scheme="http://www.blogger.com/atom/ns#" term="networking"/><category scheme="http://www.blogger.com/atom/ns#" term="scripting"/><category scheme="http://www.blogger.com/atom/ns#" term="twitter"/><title type='text'>Mikrotik WAN Failover with Twitter Notifications (Tutorial)</title><content type='html'>&lt;h2&gt;
&lt;div class=&quot;content&quot; style=&quot;background-color: white; box-sizing: border-box; clear: none; color: #303030; display: table; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; line-height: 1.6; table-layout: fixed; width: 726px; word-wrap: break-word;&quot;&gt;
&lt;strong style=&quot;box-sizing: border-box;&quot;&gt;Introduction&lt;/strong&gt;&lt;br /&gt;
In some scenarios, you want to be able to failover to another WAN in case your main link goes down.&lt;br /&gt;
I prepared this tutorial to explain how to achieve that with RouterOS and the ability to send a notification using Twitter on Failover events.&lt;br /&gt;
&lt;strong style=&quot;box-sizing: border-box;&quot;&gt;How it works&lt;/strong&gt;&lt;br /&gt;
Basically, the script will ping Google DNS 8.8.8.8 every 5 minutes using the main route (wan1), if it fails to ping, the script will change the distance of the main route by setting the value to 3 or any value higher than the second route (wan2). If the link is back, it will change the distance back to the original value.&lt;br /&gt;
&lt;strong style=&quot;box-sizing: border-box;&quot;&gt;Setup&lt;/strong&gt;&lt;/div&gt;
&lt;div class=&quot;content&quot; style=&quot;background-color: white; box-sizing: border-box; clear: none; display: table; line-height: 1.6; table-layout: fixed; width: 726px; word-wrap: break-word;&quot;&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Configure two WAN interfaces in the router. In my case I have them on ether1 and ether6 ports as the below diagrams.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;color: #303030; font-family: , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 22.4px; font-weight: 400;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioxMB833aJenp5YX65iyQ0gdyzdYAujw-p_nAbzydQrOZR9uZcMEu06C0mA5M1xn4nRWhaf3pXG2uRyqCZ-LYuZH2BYXrv9dYmkNMsCF2rLhET1iOM2WKyDc_oIscQme8qkcNDVJXQSZnd/s1600/image002.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg44LXRMeP1pNlAj2A81C5GK6rxantsc0_VGiVviHHq0tDZsykAAbflQcNh2DXGq-Bv4D6P1IjDnjEIHRawNqzsNoMWMOc1I20rK-6h7bk3QoF0lf56fVyMrE6rQiu0c8xyckSybn5u4AoO/s1600/image001.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg44LXRMeP1pNlAj2A81C5GK6rxantsc0_VGiVviHHq0tDZsykAAbflQcNh2DXGq-Bv4D6P1IjDnjEIHRawNqzsNoMWMOc1I20rK-6h7bk3QoF0lf56fVyMrE6rQiu0c8xyckSybn5u4AoO/s1600/image001.png&quot; /&gt;&lt;/a&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioxMB833aJenp5YX65iyQ0gdyzdYAujw-p_nAbzydQrOZR9uZcMEu06C0mA5M1xn4nRWhaf3pXG2uRyqCZ-LYuZH2BYXrv9dYmkNMsCF2rLhET1iOM2WKyDc_oIscQme8qkcNDVJXQSZnd/s1600/image002.png&quot; /&gt;&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Add two routes for both WANs with distance of 1 for the main WAN link and 2 for the backup link&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifW7W4iqKcrlBRPyeslf2PG-waDtPZx3WEoh-gNSbnO-ePcssQwlizVFWcZoApKmlneGYtNwOwx_r74n3fafjlMUu_6wDpLlX76ii-RlPbq2vZpsg0QkoGwGDSBhvZY1w4eQVFatbWDQ-Z/s1600/image004.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifW7W4iqKcrlBRPyeslf2PG-waDtPZx3WEoh-gNSbnO-ePcssQwlizVFWcZoApKmlneGYtNwOwx_r74n3fafjlMUu_6wDpLlX76ii-RlPbq2vZpsg0QkoGwGDSBhvZY1w4eQVFatbWDQ-Z/s1600/image004.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Then, created a new route entry that you will be using to test the internet connection on wan1 as it is your default wan connection and set the Distance to 100 and Route Mark to wan1_test&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCxTnwnlXBTo7zoqBtAs23uewB0pOBUpnY83SKajvCb-FCfN6CXSNSr7w9JofuJZfHg1rKCJIJ9kY2w1r_Vi0jg_cnzXue-KQ_7q3F0PTfPhE416PkN0Oq30Qac_gn7KW8fb-CHz-20Naw/s1600/image006.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCxTnwnlXBTo7zoqBtAs23uewB0pOBUpnY83SKajvCb-FCfN6CXSNSr7w9JofuJZfHg1rKCJIJ9kY2w1r_Vi0jg_cnzXue-KQ_7q3F0PTfPhE416PkN0Oq30Qac_gn7KW8fb-CHz-20Naw/s1600/image006.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
&lt;strong style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;Pre-requisites&lt;/strong&gt;&lt;/h2&gt;
&lt;strong style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;Create a separate Twitter account for notifications then create a Twitter App&lt;/strong&gt;&lt;br /&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Visit&amp;nbsp;&lt;a class=&quot;postlink&quot; href=&quot;https://apps.twitter.com/&quot; style=&quot;border-bottom: 1px solid rgb(45, 118, 215); box-sizing: border-box; color: #2d76d7; text-decoration-line: none;&quot;&gt;https://apps.twitter.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Click on Create New App&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbnj8WjyenEtYlKo3UKc_nIW31z6teRHChpYgTUzUbclpP6wPOXhtombHQwxeJDnfpVeb4JdJRJ962JLek9NheC9AmzLPBiO2RKMOyzmB3cNv3ZGB4JxbBXiHIVMpELz5jO72yBr2Fs3Tl/s1600/image008.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbnj8WjyenEtYlKo3UKc_nIW31z6teRHChpYgTUzUbclpP6wPOXhtombHQwxeJDnfpVeb4JdJRJ962JLek9NheC9AmzLPBiO2RKMOyzmB3cNv3ZGB4JxbBXiHIVMpELz5jO72yBr2Fs3Tl/s1600/image008.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Fill the app creation form and create your app&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;From Keys and Access Tokens, write down your Consumer Key, and Consumer Secret&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrSoChFENPTJcOV2H_GSQobYLEDsiNxdtxrDQAskIWt3s0eeZ1xNmd-CAbS9lFUZoI3AnqI2w-JtalsRxMREimcYsFH38HIDk1IqrHrJckSwifVx8a9wrOvMTpio2qVfvBrM3g_16MmGtm/s1600/image010.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrSoChFENPTJcOV2H_GSQobYLEDsiNxdtxrDQAskIWt3s0eeZ1xNmd-CAbS9lFUZoI3AnqI2w-JtalsRxMREimcYsFH38HIDk1IqrHrJckSwifVx8a9wrOvMTpio2qVfvBrM3g_16MmGtm/s1600/image010.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;From Keys and Access Tokens -&amp;gt; Your Access Token, Click Crate my access token&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBAhuGbW5RU1ij8Y_bpsrNRiK_IgZA5s81ABXQyjzAD-wVseNv7Cg7LfRi4e7LC5ASuRKc1O_aBPG-84qayx7YVV1w82wC4R_84TlhV-v9VBtsHxF-VcF3gMRdMyBsgp4ccb-Y44GTWqOV/s1600/image012.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBAhuGbW5RU1ij8Y_bpsrNRiK_IgZA5s81ABXQyjzAD-wVseNv7Cg7LfRi4e7LC5ASuRKc1O_aBPG-84qayx7YVV1w82wC4R_84TlhV-v9VBtsHxF-VcF3gMRdMyBsgp4ccb-Y44GTWqOV/s1600/image012.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;From Keys and Access Tokens -&amp;gt; Your Access Token, write down your generated Access Token, and Access Token Secret&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ltgMSg3LyvwY6xzXlGWJHnkdfe6_zQYmn4s54lLxedFyuc94f7UXcpdfZtJPlzY51lGNpY3CIgYWUv60jiEiJZ0TZtwo3sY4IoVyCsIggV_MjqPG3z8WzIGkKOY3LQjNkYZ1-vftU9t7/s1600/image014.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ltgMSg3LyvwY6xzXlGWJHnkdfe6_zQYmn4s54lLxedFyuc94f7UXcpdfZtJPlzY51lGNpY3CIgYWUv60jiEiJZ0TZtwo3sY4IoVyCsIggV_MjqPG3z8WzIGkKOY3LQjNkYZ1-vftU9t7/s1600/image014.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;strong style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;Create a web application to consume twitter API&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;color: #303030; font-family: , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;For that, I used Visual Studio and ASP.NET MVC web application. Feel free to develop the application with any programming language you are comfortable with.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Define string variables for Consumer Key, Consumer Secret, Access Token, and Access Token Secret&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgugJ31t1oUSHMUYALcxxoZxD_s8Af32X5xNQeaWYJeVMUDack1IRr9wuZHmjN-2MGqqMMlZGQ-ko93FnPuArioVpdlPwRERLc_hnEHJWrRq5A_KC4fzv9Z6Frp_hq1fJV7ualazYoRbWcm/s1600/image016.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgugJ31t1oUSHMUYALcxxoZxD_s8Af32X5xNQeaWYJeVMUDack1IRr9wuZHmjN-2MGqqMMlZGQ-ko93FnPuArioVpdlPwRERLc_hnEHJWrRq5A_KC4fzv9Z6Frp_hq1fJV7ualazYoRbWcm/s1600/image016.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;codebox&quot; style=&quot;background-color: whitesmoke; box-sizing: border-box; color: #303030; display: inline; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 0.867em; font-weight: 400; margin: 0.3em 0px 0px; padding: 2px 0px;&quot;&gt;
&lt;pre style=&quot;background: transparent; border-radius: 2px; border: 0px; box-sizing: border-box; color: #333333; display: inline; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1.1em; line-height: 1.4; max-height: 220px; overflow: auto; padding: 0px; word-break: break-all; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; consumerKey &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;xXxXxXxXxXxXxXxXxXxXxXxX&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: #880000;&quot;&gt;// The application&#39;s consumer key&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; consumerSecret &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;xXxXxXxXxXxXxXxXxXxXxXxX&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: #880000;&quot;&gt;// The application&#39;s consumer secret&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; accessToken &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;xXxXxXxXxXxXxXxXxXxXxXxX&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: #880000;&quot;&gt;// The access token granted after OAuth authorization&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; accessTokenSecret &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;xXxXxXxXxXxXxXxXxXxXxXxX&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: #880000;&quot;&gt;// The access token secret granted after OAuth authorization&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Install NuGet Package Spring.Social.Twitter version 2.0.0-M1&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create a new function in your controller, this function will be called from RouterOS script every time failover happens and that function will tweet the failover details.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqQMhQ6xv3q74Knlax2EW5Nd8DGR4eEAkLTbS0smDxzSPy1sE3tMvFu0b7ICl1XGVxxVp9Ade6xWjltPisFk8O-oZhatTwjuuqBeOhLlPaZg288yx9Dx5BD7DVM6MN2sA2_1RhyXZDCUFu/s1600/image018.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqQMhQ6xv3q74Knlax2EW5Nd8DGR4eEAkLTbS0smDxzSPy1sE3tMvFu0b7ICl1XGVxxVp9Ade6xWjltPisFk8O-oZhatTwjuuqBeOhLlPaZg288yx9Dx5BD7DVM6MN2sA2_1RhyXZDCUFu/s1600/image018.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;codebox&quot; style=&quot;background-color: whitesmoke; box-sizing: border-box; color: #303030; display: inline; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 0.867em; font-weight: 400; margin: 0.3em 0px 0px; padding: 2px 0px;&quot;&gt;
&lt;pre style=&quot;background: transparent; border-radius: 2px; border: 0px; box-sizing: border-box; color: #333333; display: inline; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1.1em; line-height: 1.4; max-height: 220px; overflow: auto; padding: 0px; word-break: break-all; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;ActionResult&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;UpdateConnectionStatus&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; currentConnection&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;

            &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;ITwitter&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; twitter &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;TwitterTemplate&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;consumerKey&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; consumerSecret&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; accessToken&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; accessTokenSecret&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;currentConnection &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;!=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
                twitter&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;TimelineOperations&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;UpdateStatusAsync&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;Format&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;Internet service is now provided by {0} network&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; currentConnection&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;));&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;HttpStatusCodeResult&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;HttpStatusCode&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;OK&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;HttpStatusCodeResult&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;HttpStatusCode&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;NotFound&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;


        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Compile and publish the application on IIS&lt;/li&gt;
&lt;/ul&gt;
&lt;strong style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;Scripting RouterOS&lt;/strong&gt;&lt;br /&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Create a new script to check the internet connection on your default wan using the test route that we created in the above step as following&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJZGyLqJzxt_n3G9Vlcgeoh2voaZZ2YNN3DD3cPKTZEF5Ji5VtRBBZVa_I-0vg2q3MtD8je7eoQriXb_OlX7PsjM1oRhiIz9e8tiD6HJVRWvkHtlex62HFk9yOFVzwRi8icLfmCGnNfFxt/s1600/image020.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJZGyLqJzxt_n3G9Vlcgeoh2voaZZ2YNN3DD3cPKTZEF5Ji5VtRBBZVa_I-0vg2q3MtD8je7eoQriXb_OlX7PsjM1oRhiIz9e8tiD6HJVRWvkHtlex62HFk9yOFVzwRi8icLfmCGnNfFxt/s1600/image020.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;codebox&quot; style=&quot;background-color: whitesmoke; box-sizing: border-box; color: #303030; display: inline; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 0.867em; font-weight: 400; margin: 0.3em 0px 0px; padding: 2px 0px;&quot;&gt;
&lt;pre style=&quot;background: transparent; border-radius: 2px; border: 0px; box-sizing: border-box; color: #333333; display: inline; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1.1em; line-height: 1.4; max-height: 220px; overflow: auto; padding: 0px; word-break: break-all; word-wrap: break-word;&quot;&gt;&lt;code class=&quot;prettyprint prettyprinted&quot; style=&quot;background-color: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;global&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; currentConnection&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; GW1 ether1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;wan1
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;RouteNameGW1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; wan1
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;RouteTableTest&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; wan1_test
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;PingTarget&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: #006666;&quot;&gt;8.8&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: #006666;&quot;&gt;8.8&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;PingResult&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;


&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;PingResult&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;ping $PingTarget count&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: #006666;&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; routing&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;table&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;$RouteTableTest &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;interface&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;$GW1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; $PingResult &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: #006666;&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;={&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;ip route &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;[/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;ip route find &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; comment&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;$RouteNameGW1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; distance&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: #006666;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; $currentConnection &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;Mobily 4G&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;={&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; currentConnection &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;STC Fiber&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;/tool fetch address=&lt;ip address=&quot;&quot; app=&quot;&quot; host=&quot;&quot; internal=&quot;&quot; where=&quot;&quot; you=&quot;&quot; your=&quot;&quot;&gt; src-path=&quot;/&lt;/ip&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;currentConnection&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;$currentConnection&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot; mode=http keep-result=no url=&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: #880000;&quot;&gt;//&lt;ip address=&quot;&quot; app=&quot;&quot; host=&quot;&quot; internal=&quot;&quot; where=&quot;&quot; you=&quot;&quot; your=&quot;&quot;&gt;/Home/UpdateConnectionStatus\?currentConnection=STC%20Fiber&quot;;&lt;/ip&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;


&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;typeof&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; $currentConnection &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;nothing&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;={&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; currentConnection &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;STC Fiber&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;PingResult&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: #006666;&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;={&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;ip route &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;[/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;ip route find &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; comment&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;$RouteNameGW1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; distance&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: #006666;&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;


&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; $currentConnection &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;STC Fiber&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;={&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; currentConnection &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;Mobily 4G&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;/tool fetch address=&lt;ip address=&quot;&quot; app=&quot;&quot; host=&quot;&quot; internal=&quot;&quot; where=&quot;&quot; you=&quot;&quot; your=&quot;&quot;&gt; src-path=&quot;/&lt;/ip&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;currentConnection&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;$currentConnection&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot; mode=http keep-result=no url=&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: #880000;&quot;&gt;//&lt;ip address=&quot;&quot; app=&quot;&quot; host=&quot;&quot; internal=&quot;&quot; where=&quot;&quot; you=&quot;&quot; your=&quot;&quot;&gt;/Home/UpdateConnectionStatus\?currentConnection=Mobily%204G&quot;;&lt;/ip&gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;typeof&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; $currentConnection &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;nothing&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;={&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; currentConnection &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: #008800;&quot;&gt;&quot;Mobily 4G&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: #000088;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: #660066;&quot;&gt;PingResult&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: #006666;&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: #666600;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Schedule the script to run every 5 minutes&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Follow the twitter account, that you use to tweet these notifications, from your personal account and set SMS notifications on that account&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;box-sizing: border-box; color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400; margin: 0px; padding: 0px 0px 0px 40px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;Now whenever my connection fails over the backup link, I get the following notification on my phone.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;inline-attachment&quot; style=&quot;box-sizing: border-box; color: #969696; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgshZca59lO68yK9kaXCsjLUMBbqFBLtEYM1D24acIIpvM52RPWva7It7oYsB6mtpX9Mjm3vHPuvsOdy5qJHghBRuWv0CMi-e1HIqycJzPz4oemI4eyLqP0ORoIzM0BQP7Cd_Yp3YPbu0jE/s1600/image022.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgshZca59lO68yK9kaXCsjLUMBbqFBLtEYM1D24acIIpvM52RPWva7It7oYsB6mtpX9Mjm3vHPuvsOdy5qJHghBRuWv0CMi-e1HIqycJzPz4oemI4eyLqP0ORoIzM0BQP7Cd_Yp3YPbu0jE/s640/image022.png&quot; width=&quot;310&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;color: #303030; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 1.4rem; font-weight: 400;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h2&gt;
</content><link rel='replies' type='application/atom+xml' href='http://ammar.tawabini.com/feeds/6518157406564961324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2760789613387826548/6518157406564961324' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2760789613387826548/posts/default/6518157406564961324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2760789613387826548/posts/default/6518157406564961324'/><link rel='alternate' type='text/html' href='http://ammar.tawabini.com/2018/02/mikrotik-wan-failover-with-twitter.html' title='Mikrotik WAN Failover with Twitter Notifications (Tutorial)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/04514480962238495780</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg44LXRMeP1pNlAj2A81C5GK6rxantsc0_VGiVviHHq0tDZsykAAbflQcNh2DXGq-Bv4D6P1IjDnjEIHRawNqzsNoMWMOc1I20rK-6h7bk3QoF0lf56fVyMrE6rQiu0c8xyckSybn5u4AoO/s72-c/image001.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2760789613387826548.post-464012513013142124</id><published>2010-09-07T04:46:00.001+03:00</published><updated>2016-08-29T09:56:21.166+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 4.0"/><category scheme="http://www.blogger.com/atom/ns#" term="asp.net"/><title type='text'>GridView Ajax Filter</title><content type='html'>Upon users’ requests to enhance the &lt;a href=&quot;http://ammar.tawabini.com/2008/06/aspnet-datagridview-ajax-data-filter.html&quot;&gt;GridView Ajax Filter&lt;/a&gt; control, I made some changes to the control to allow more flexibility and functionality to it. I will discuss all the features of the control and how to use it on your project. P.S. I am using Visual Studio 2010 for the current demo. &lt;br /&gt;
Features: &lt;br /&gt;
1. More operations have been added “=, LIKE, NOT LIKE, &amp;lt;&amp;gt;, &amp;gt;, &amp;lt;, &amp;gt;=, &amp;lt;=”: &lt;br /&gt;
&lt;a href=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWY5lvvKXI/AAAAAAAAAmk/YYxe4Pf7Dy8/s1600-h/clip_image002%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image002&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWY6LN6brI/AAAAAAAAAmo/wq8BahejTBk/clip_image002_thumb.jpg?imgmax=800&quot; height=&quot;189&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image002&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
2. Search for multiple keyword in the same filter by adding a semicolon after each keyword: &lt;br /&gt;
&lt;a href=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWY6-N4enI/AAAAAAAAAms/YJRu_zxYeHc/s1600-h/clip_image004%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image004&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWY7nPk0pI/AAAAAAAAAmw/kwHU0QPaGvk/clip_image004_thumb.jpg?imgmax=800&quot; height=&quot;189&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image004&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
3. Updating the filter (Column , Operation, or Keyword) without removing it: &lt;br /&gt;
&lt;a href=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWY8Qe9ckI/AAAAAAAAAm0/ZH1_4NVZbpM/s1600-h/clip_image006%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image006&quot; border=&quot;0&quot; src=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWY84_GCZI/AAAAAAAAAm4/wVg7vJKAm2Y/clip_image006_thumb.jpg?imgmax=800&quot; height=&quot;189&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image006&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
4. Adding multiple filter with AND / OR operation between them: &lt;br /&gt;
&lt;a href=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWY9nzCjiI/AAAAAAAAAm8/4c_YKAZz6Kw/s1600-h/clip_image008%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image008&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWY-KnzZaI/AAAAAAAAAnA/dgGGYRmwSHo/clip_image008_thumb.jpg?imgmax=800&quot; height=&quot;189&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image008&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
5. Adding dynamic date values to the keyword: &lt;br /&gt;
&lt;i&gt;“For this example I am selecting all the products that have been created 8 months from today’s date using this value { t - m(8) }”. &lt;b&gt;t: today, m:month&lt;/b&gt;&lt;/i&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWY-xII0cI/AAAAAAAAAnE/9lLaZrJfEh0/s1600-h/clip_image010%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image010&quot; border=&quot;0&quot; src=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWY_VRfTuI/AAAAAAAAAnI/fVs4LdUou14/clip_image010_thumb.jpg?imgmax=800&quot; height=&quot;189&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image010&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
6. The filter for each page will be stored throughout your session, so you don’t have to re-create the filter if you visited another page then came back to the filtered page again. &lt;br /&gt;
How to Use: &lt;br /&gt;
- Create a new &lt;b&gt;ASP.NET Empty Web Application&lt;/b&gt; and name it &lt;b&gt;DataFilterDemo&lt;/b&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWZAKyMDHI/AAAAAAAAAnM/8CrpY9LQnnQ/s1600-h/clip_image012%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image012&quot; border=&quot;0&quot; src=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWZA4RZntI/AAAAAAAAAnQ/7iFK_e1XeoI/clip_image012_thumb.jpg?imgmax=800&quot; height=&quot;176&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image012&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Drag and drop the following files from &lt;b&gt;DataFilter&lt;/b&gt; folder to your project “DataFilter.ascx, DataFilter.ascx.cs, and Filter.cs” (Can be found in the &lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=2760789613387826548#gvafatt&quot;&gt;attached file below&lt;/a&gt;) &lt;br /&gt;
&lt;a href=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWZBexAItI/AAAAAAAAAnU/jD7W5jLKh8U/s1600-h/clip_image014%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image014&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZB4LAV2I/AAAAAAAAAnY/-cm7J8jAXgQ/clip_image014_thumb.jpg?imgmax=800&quot; height=&quot;169&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image014&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Right-click on your project and click on &lt;b&gt;Convert to Web Application&lt;/b&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWZCoW3lWI/AAAAAAAAAnc/pT__cajfPlc/s1600-h/clip_image016%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image016&quot; border=&quot;0&quot; src=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWZDHIgxGI/AAAAAAAAAng/3BzwYbgP5Hc/clip_image016_thumb.jpg?imgmax=800&quot; height=&quot;154&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image016&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
-Right-Click on your project and click on &lt;b&gt;Add -&amp;gt; New Item… -&amp;gt; Web Form&lt;/b&gt; then name it “Default.aspx” &lt;br /&gt;
&lt;a href=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZDs1NPLI/AAAAAAAAAnk/JZGjTK4UAa0/s1600-h/clip_image018%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image018&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZEd-uVaI/AAAAAAAAAno/kCK1XUUMUXI/clip_image018_thumb.jpg?imgmax=800&quot; height=&quot;146&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image018&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- From &lt;b&gt;Solution Explorer&lt;/b&gt; drag DataFilter.ascx control to the design view of Default.aspx Page. &lt;br /&gt;
&lt;a href=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZFQ4hUgI/AAAAAAAAAns/yfzBbkklWB4/s1600-h/clip_image020%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image020&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZF1tL0xI/AAAAAAAAAnw/RApGeQzcqxo/clip_image020_thumb.jpg?imgmax=800&quot; height=&quot;185&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image020&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Add Script Manager and Update Panel to the page. &lt;br /&gt;
&lt;a href=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZG0RA--I/AAAAAAAAAn0/dV1B3E5dQnk/s1600-h/clip_image022%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image022&quot; border=&quot;0&quot; src=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWZHe3so1I/AAAAAAAAAn4/wsh8oS_TPmE/clip_image022_thumb.jpg?imgmax=800&quot; height=&quot;185&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image022&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Add new GridView inside the Update Panel “UpdatePanel1” to the page and just keep the name as “GridView1” for demonstration proposes. &lt;br /&gt;
&lt;a href=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZIBIXAGI/AAAAAAAAAn8/EQWq1fhaE48/s1600-h/clip_image024%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image024&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZIpfMsAI/AAAAAAAAAoA/20Hnqioa_L4/clip_image024_thumb.jpg?imgmax=800&quot; height=&quot;185&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image024&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Expand GridView Properties and add new Sql Data Source &lt;br /&gt;
&lt;a href=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZJSTpFeI/AAAAAAAAAoE/aXi8rmlOp1U/s1600-h/clip_image026%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image026&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZJwfL3MI/AAAAAAAAAoI/QuxVuYoOWXo/clip_image026_thumb.jpg?imgmax=800&quot; height=&quot;185&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image026&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWZKqQO8XI/AAAAAAAAAoM/QVCwyUlDeNU/s1600-h/clip_image028%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image028&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZLTH1i9I/AAAAAAAAAoQ/jR121GKjpMY/clip_image028_thumb.jpg?imgmax=800&quot; height=&quot;183&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image028&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Choose your database connection and configure the SELECT data for your GridView &lt;br /&gt;
&lt;a href=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWZL5QVaRI/AAAAAAAAAoU/keiPr_pj4iI/s1600-h/clip_image029%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image029&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZMekx5PI/AAAAAAAAAoY/zox3s9PSLTc/clip_image029_thumb.jpg?imgmax=800&quot; height=&quot;183&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image029&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWZNC7VpXI/AAAAAAAAAoc/4zPF1NiwM-Q/s1600-h/clip_image031%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image031&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZNj9pxQI/AAAAAAAAAog/UWZhefd-rVU/clip_image031_thumb.jpg?imgmax=800&quot; height=&quot;197&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image031&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZOf3K1lI/AAAAAAAAAok/-oNi_APPMfo/s1600-h/clip_image033%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image033&quot; border=&quot;0&quot; src=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWZO4B9w5I/AAAAAAAAAoo/mYghkO6ep6k/clip_image033_thumb.jpg?imgmax=800&quot; height=&quot;197&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image033&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZPn3Q_SI/AAAAAAAAAos/HDaNPJj_aOw/s1600-h/clip_image035%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image035&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZQNIzyGI/AAAAAAAAAow/Ju_yfIgqlqo/clip_image035_thumb.jpg?imgmax=800&quot; height=&quot;197&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image035&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWZQzvaBMI/AAAAAAAAAo0/UIarWjGJLOQ/s1600-h/clip_image037%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image037&quot; border=&quot;0&quot; src=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWZSZyUnBI/AAAAAAAAAo4/P1O9T77YZc4/clip_image037_thumb.jpg?imgmax=800&quot; height=&quot;185&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image037&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- If you want, change columns’ names to whatever names you like. &lt;br /&gt;
- Right click on the page and click &lt;b&gt;View Code&lt;/b&gt; &lt;br /&gt;
&lt;a href=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZTNfumYI/AAAAAAAAAo8/sxw7cjaPjhY/s1600-h/clip_image039%5B3%5D.jpg&quot;&gt;&lt;img alt=&quot;clip_image039&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/_mtZP2i_3lKU/TIWZTjY4GOI/AAAAAAAAApA/mNmtua6EM3Y/clip_image039_thumb.jpg?imgmax=800&quot; height=&quot;184&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image039&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Inside Page_Load function, add the following code: &lt;br /&gt;
&lt;a href=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZUXxun9I/AAAAAAAAApE/OvskjpZ99Co/s1600-h/clip_image041%5B3%5D.png&quot;&gt;&lt;img alt=&quot;clip_image041&quot; border=&quot;0&quot; src=&quot;http://lh3.ggpht.com/_mtZP2i_3lKU/TIWZUx86erI/AAAAAAAAApI/L3fdvSe-tj0/clip_image041_thumb.png?imgmax=800&quot; height=&quot;67&quot; style=&quot;background-image: none; border: 0px none; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image041&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Add a new Event Handler function to handle the call back from the control: &lt;br /&gt;
&lt;a href=&quot;http://lh6.ggpht.com/_mtZP2i_3lKU/TIWZVjfOxaI/AAAAAAAAApM/NfVFHGP_t5g/s1600-h/clip_image043%5B3%5D.png&quot;&gt;&lt;img alt=&quot;clip_image043&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/_mtZP2i_3lKU/TIWZWiVVVlI/AAAAAAAAApQ/bn6gQPHuC3U/clip_image043_thumb.png?imgmax=800&quot; height=&quot;143&quot; style=&quot;background-image: none; border: 0px none; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image043&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
- Done, press F5 to debug and run your application &lt;br /&gt;
Please note the following: &lt;br /&gt;
- Date format must be as dd/MM/yyyy to be able to filter the column or you can change that by re-write the part of Filter.cs that handles the date format. &lt;br /&gt;
- To Implement Sorting and Paging when the filter is applied call the Event Handler “DataFilter1_OnDataBound()” on the following Events of GridView “Sorted” and “PageIndexChanged”   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Source Code &amp;amp; Demo&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src=&quot;https://onedrive.live.com/embed?cid=96B1C001B53B5D01&amp;resid=96B1C001B53B5D01%21605&amp;authkey=ACK_0cwdOgnJuRw&quot; width=&quot;98&quot; height=&quot;120&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://ammar.tawabini.com/feeds/464012513013142124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2760789613387826548/464012513013142124' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2760789613387826548/posts/default/464012513013142124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2760789613387826548/posts/default/464012513013142124'/><link rel='alternate' type='text/html' href='http://ammar.tawabini.com/2010/09/gridview-ajax-filter.html' title='GridView Ajax Filter'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/04514480962238495780</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_mtZP2i_3lKU/TIWY6LN6brI/AAAAAAAAAmo/wq8BahejTBk/s72-c/clip_image002_thumb.jpg?imgmax=800" height="72" width="72"/><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2760789613387826548.post-7767837826831803474</id><published>2008-06-12T15:14:00.000+03:00</published><updated>2011-05-31T12:05:02.111+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asp.net"/><category scheme="http://www.blogger.com/atom/ns#" term="custom control"/><category scheme="http://www.blogger.com/atom/ns#" term="datagridview filter"/><category scheme="http://www.blogger.com/atom/ns#" term="sqldatasource filter"/><category scheme="http://www.blogger.com/atom/ns#" term="table filter"/><title type='text'>ASP.NET GridView Ajax Data Filter Control</title><content type='html'>&lt;span style=&quot;font-size:180%;&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;UPDATE:&lt;/span&gt;&lt;/span&gt; new release of the control found &lt;a href=&quot;http://ammar.tawabini.com/2010/09/gridview-ajax-filter.html&quot;&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was looking for an ASP.net 2.0 custom control that enables the user to filter the data in a GridView control by adding filters to the GridView. The control can be found in applications such as Microsoft BI Studio. So I decided to develop a web based control that will do such thing.&lt;br /&gt;&lt;br /&gt;note:&lt;br /&gt;1-ASP.NET Ajax Extensions must be installed in your VS.NET evironment.&lt;br /&gt;2-GridView must be placed inside Ajax UpdatePanel.&lt;br /&gt;3-You don&#39;t have to add ScriptManager inside your aspx page since the control contains one.&lt;br /&gt;4-In case your page has a ScriptManager, you can delete the one inside the custom control.&lt;br /&gt;&lt;br /&gt;Here are some pictures demonstrating the use of the control:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinu8sW1GW9-MsYoNUVTC6YJdmD5-siKrAmRg9oCxCSeN-KVcPNEBy_Hqkb9XAOOHrV8s3NwjIUqwhMTVzZhC6OWByn3ljlz68Ry5B4yquIc4Hh1zuFKvCX1LqM_IBCuxGz9DteOxV2fM74/s1600-h/FilterDemo1.PNG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinu8sW1GW9-MsYoNUVTC6YJdmD5-siKrAmRg9oCxCSeN-KVcPNEBy_Hqkb9XAOOHrV8s3NwjIUqwhMTVzZhC6OWByn3ljlz68Ry5B4yquIc4Hh1zuFKvCX1LqM_IBCuxGz9DteOxV2fM74/s400/FilterDemo1.PNG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5210990020367482738&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLN1_q1FIfo7KmdO7uv1AGFPeZj4METtY47QbFiJKv0qSaR1IH3U671cAfIyUU5B_v1Sx18fYey-PrnNcCada97TsKAo49G2KwnbrPf4ILpU5EMjIyWxdo9oM-xjMqvMaO4OnqxkbSOFOF/s1600-h/FilterDemo2.PNG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLN1_q1FIfo7KmdO7uv1AGFPeZj4METtY47QbFiJKv0qSaR1IH3U671cAfIyUU5B_v1Sx18fYey-PrnNcCada97TsKAo49G2KwnbrPf4ILpU5EMjIyWxdo9oM-xjMqvMaO4OnqxkbSOFOF/s400/FilterDemo2.PNG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5210990078631965202&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb3z8XfndWTgxXzELr_yoB06wkArruajoxLOgoxCjnQgiscRRkWdeKuKd_HF17MvaXipkxb9jJ0KFj4AQCK-ChMluLzAufB-vefsWXXr2hycjssuIMs0jcGPY8zCitW6wVV-R00A_Y0uU_/s1600-h/FilterDemo3.PNG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb3z8XfndWTgxXzELr_yoB06wkArruajoxLOgoxCjnQgiscRRkWdeKuKd_HF17MvaXipkxb9jJ0KFj4AQCK-ChMluLzAufB-vefsWXXr2hycjssuIMs0jcGPY8zCitW6wVV-R00A_Y0uU_/s400/FilterDemo3.PNG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5210990111360361042&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the demo of the custom control:&lt;br /&gt;&lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/H-vkWeoohtg&amp;amp;hl=en&amp;amp;fs=1&amp;amp;fmt=18&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/H-vkWeoohtg&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D18&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; height=&quot;344&quot; width=&quot;425&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;If you would like to download the high resolution flash video you can download it from here:&lt;br /&gt;&lt;iframe marginheight=&quot;0&quot; marginwidth=&quot;0&quot; style=&quot;border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);&quot; src=&quot;http://cid-96b1c001b53b5d01.skydrive.live.com/embedrowdetail.aspx/tawatech.blogspot.com/TableFilterProjectDemo.swf&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;The source code for the control is available here:&lt;br /&gt;&lt;iframe marginheight=&quot;0&quot; marginwidth=&quot;0&quot; style=&quot;border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);&quot; src=&quot;http://cid-96b1c001b53b5d01.skydrive.live.com/embedrowdetail.aspx/tawatech.blogspot.com/Table%20Filter.zip&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);font-size:180%;&quot; &gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;update: &lt;/span&gt;&lt;/span&gt;I uploaded a newer version of the control.&lt;br /&gt;Current version:&lt;br /&gt;1- Adding a session field to the control to enables the user to use the control on any page at the same time, or on the same page with multiple GridView controls.&lt;br /&gt;2- And / Or operators between filters.&lt;br /&gt;3- search for multiple keyword in the same filter by adding a semicolon after each keyword.&lt;br /&gt;4- Adding new filters programmaticaly.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;Screenshot:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggKxmq8sIhkbdNP8qeH06dIpNCJh2qhSc0D9L8DQccxPCNQAva0_yqIQQhRMQ_ARybyR-ajoh1zPvS49zz3zxefxPLJiu78209AmTBfI_LXtjPOakzup6nZ5aGS_Yx4HR5Wod2JGBmndJi/s1600-h/GridViewAjaxFilter.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 280px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggKxmq8sIhkbdNP8qeH06dIpNCJh2qhSc0D9L8DQccxPCNQAva0_yqIQQhRMQ_ARybyR-ajoh1zPvS49zz3zxefxPLJiu78209AmTBfI_LXtjPOakzup6nZ5aGS_Yx4HR5Wod2JGBmndJi/s400/GridViewAjaxFilter.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5346726997097839554&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;Example + Source Code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight=&quot;0&quot; marginwidth=&quot;0&quot; style=&quot;border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);&quot; src=&quot;http://cid-96b1c001b53b5d01.skydrive.live.com/embedrowdetail.aspx/tawatech.blogspot.com/Table%20Filter%20v2.0.zip&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://ammar.tawabini.com/feeds/7767837826831803474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2760789613387826548/7767837826831803474' title='52 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2760789613387826548/posts/default/7767837826831803474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2760789613387826548/posts/default/7767837826831803474'/><link rel='alternate' type='text/html' href='http://ammar.tawabini.com/2008/06/aspnet-datagridview-ajax-data-filter.html' title='ASP.NET GridView Ajax Data Filter Control'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/04514480962238495780</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinu8sW1GW9-MsYoNUVTC6YJdmD5-siKrAmRg9oCxCSeN-KVcPNEBy_Hqkb9XAOOHrV8s3NwjIUqwhMTVzZhC6OWByn3ljlz68Ry5B4yquIc4Hh1zuFKvCX1LqM_IBCuxGz9DteOxV2fM74/s72-c/FilterDemo1.PNG" height="72" width="72"/><thr:total>52</thr:total></entry></feed>