posted Monday, August 28, 2006 8:26 PM by BilalHaidar [MVP] :: 0 Comments

UserGroups Listed on Microsoft

It is nice to see my user group listed on the Microsoft website:

Check it out!!


posted Friday, August 25, 2006 8:23 PM by BilalHaidar [MVP] :: 0 Comments

xGrid on CodePlex


I have decided to place the xGrid on CodePlex because of the huge number of comments and feedback I am receiving every day on the xGrid.

The xGrid needs some enhancements and improvements by adding additional features.

Hope you all will be able to help me out in moving this xGrid to a new stage, where all developers can use it for free with the maximum features available!


posted Monday, August 21, 2006 3:57 AM by BilalHaidar [MVP] :: 0 Comments
Filed Under:

Page Properties and SqlDataSource-ObjectDataSource-AccessDataSource

A nice tip given by Stephan Walther in his latest book, ASP.NET 2.0 Unleashed is how to use a page property as a parameter to either Insert, Delete, Update, or Select parameters.

As you know, we have a set of new parameter objects that can be used to supply data to Sql, Object, and Access DataSources. Among which is the ControlParameter.

ControlParameter usually uses a control on the page. Since a Page is also a control, then we can use the Page control as follows

                PropertyName="IPAddress" />

In this example, you can see that the ControlParamter uses the ControlID as "__page", where __page is the name of the Page control at run time. The propertyName here represents a property that you have created on the page code-behind as:

    Public ReadOnly Property IPAddress() As String
            Return Request.UserHostAddress
        End Get
    End Property

So, you are able to use the Page property simply as input for the ControlParameter.

Hope this helps,


posted Wednesday, August 16, 2006 2:44 AM by BilalHaidar [MVP] :: 0 Comments

ASPAlliance Times : An Extended GridView Control

I was so surprised this morning to read the ASPAlliance newsletter and notice that my article was chosen as the featured article for this week.

Not only that, Steven Smith added his "Editor's Comments" all on my new extended control. I haven't seen before the editor's comments on an article but rather on a new third-party control or even new technology.

Here are the comments:

Our featured article this week is really worth a look.  The standard GridVew
is a huge improvement over the DataGrid in ASP.NET 1.x, but in this article,
Bilal looks extends the control with over 10 pages worth of additional
features, covering many of the features that typically require the use of a
third-party control.  Some of the added features include selection based on
row click or doubleclick, filters, row checkboxes, confirm buttons, and sort
images in the header.  The article also does a good job of showing how you
can extend the GridView (or other ASP.NET controls) yourself.  Check it out!


Wow Steve, that is too much for me!! I am very happy to know that I did something cool and good for the community too!!!

Thanks a lot for your support and for!!


posted Tuesday, August 15, 2006 11:57 PM by BilalHaidar [MVP] :: 0 Comments

Syria wins the War, how?

As a first comment on the war my country had in the last 30 days between Israel and the Hezbollah:

Syria considers itself a winner through Hezbollah how? Syria was able to win more than 5000 job opportunities for its unemployed people in Syria to work in Lebanon in reconstructing the country after Israel, in the name of Attacking the Terrorists, destroyed the entire country.

Isn't this a great prize Israel gave to Syria? 5000 Job Opportunities and even more who knows? Doesn't this serve the purpose of having less pressure on the Syrian government from its people who owe nothing but the food they eat and all the richness of the country are owned by few persons controling everything there? Does this mean that Syria prepared this bloody act on Lebanon together with Israel? Does this mean Iran prepared this brutal act on Lebanon together with Israel? Questions whose answers are very obvious!!

Regards to my beloved country, Lebanon!!

posted Tuesday, August 08, 2006 8:06 PM by BilalHaidar [MVP] :: 1 Comments

Extended GridView Control

In this article I explain in detail an extended GridView control developed based on the GridView control that ships with ASP.NET 2.0. Also discussed are important features of this new GridView: the built-in context menu row-based and the Filter textbox to filter the GridView's rows.

You can check this article at:

Hope you will enjoy it!


posted Friday, August 04, 2006 9:47 PM by BilalHaidar [MVP] :: 0 Comments
Filed Under:

Databinding Expressions in ASP.NET 1.1/2.0

A very common question on the ASP.NET forums is how to do expression databinding on the ASPX page.

The ASP.NET allows you to use 3 different binding expressions:

1- <% %>
You can use the above expression to execute some C#/VB.NET code as follows:

<% Response.Write("Hello World"); %>

Which will print out "Hello World" on the page.

2- <%# %>
This expression can be used to execute any property, collection, expression, or method result on the ASPX page.

  1. <%# CustomerID %> will print out the customer ID provided CustomerID is a public property/field.
  2. this will bind the ListBox to an array of students.
  3. Full Name: <%# (Student.FirstName + " " + Student.La   stName) %>
  4. Number of users online: <%# GetUserCount() %>

The main idea here is that, the expression within the <%# %> is only executed when Page.DataBind() is called.

3- <%= %>
This works the same as the above expression syntax with the difference that this syntax is executed on page load without the need to call Page.DataBind(). Similar to Response.Write().



posted Monday, July 31, 2006 10:50 PM by BilalHaidar [MVP] :: 0 Comments
Filed Under:

HttpResponse.ApplyAppPathModifier Method

A very interesting method I came over today:


According to the MSDN documentation:

Adds a session ID to the virtual path if the session is using Cookieless session state and returns the combined path. If Cookieless session state is not used, ApplyAppPathModifier returns the original virtual path.

This is very cute!! If you are using cookieless session state, you can easily you this method, give it a virtual path, it will automatically append the SessionId to the URL without any need to do any manual effort!!!

It is also helpful, when you want to redirect from Http to Https or vicaversa, it helps you maintain the same session Id when moving!

This is a small example:


will generate something as:


Hope this helps!


posted Monday, July 24, 2006 11:30 AM by BilalHaidar [MVP] :: 4 Comments

The Last Night!!

This is my last night I sleep here in my home in Beirut!! Tomorrow morning I am leaving outside the country following my company and going away from this ugly war we have that stopped everybody in Lebaon from going to their jobs, stopped them from their normal life they used to have!!!

I am leaving my beloved country and the pain is hitting every single part of my body, the pain of those families who lost their homes in thousands, the pain from what happened to my country, from the destruction we had here, from the hundreds of people who were killed and mainly children!!!

I am leaving my country and my heart is staying here, he is not accepting to leave his house, his country, his family, his friends, his beloved people!!!!!!

I will come back. Lebanon is for me, for every person who believes in Lebanon, we will build it again, no one would ever erase us from existence!!!!!

Good bye my lovely Lebanon, till the time we meet again, let God bless you and bless all your beloved people!!!

posted Thursday, July 20, 2006 6:28 AM by BilalHaidar [MVP] :: 0 Comments

No Comments!!


posted Monday, July 17, 2006 10:41 PM by BilalHaidar [MVP] :: 9 Comments

Support my country!!

For the 7th consecutive day, my country is under attack by Israel!!! More and more civilians are killed daily!!

Support my country and express your resistance for the barbarians here by posting your comments below!!!

posted Monday, July 17, 2006 1:59 AM by BilalHaidar [MVP] :: 0 Comments
Filed Under: XSLT, XPath, XML

XSLT Debugging in .NET 2.0

You can now debug an XSLT document in .NET 2.0.

You have now the XslCompiledTransform object that is used to do the transformation in .NET 2.0.

When you create your instance of the XslCompiledTransform use this constructor:

XslCompiledTransform xsl = new XslCompiledTranform(true);

Then, set a break point on the Tranform method call, when the debugger is there, hit F11 to enter the XSLT document and start debugging your Xslt file!



posted Monday, July 17, 2006 12:21 AM by BilalHaidar [MVP] :: 0 Comments

Lebanon under attack, 6th day

Today is the 6th day of the Israeli attacks on Lebanon. More civilians are killed, more buildings, bridges, ports, etc .. are destroyed.

Anybody to care or stop all that???????

posted Sunday, July 16, 2006 3:00 AM by BilalHaidar [MVP] :: 2 Comments

Lebanon still under attack

My beloved country is still under attack for the 4rth consecutive day by the barbarians, Isarel. The primse minister declared Lebanon a "disaster zone" and asked all the internal community to help us get out of this disaster.

Any country can listen and save what is left from Lebanon????????

posted Thursday, July 13, 2006 11:52 AM by BilalHaidar [MVP] :: 1 Comments
Filed Under:

Lebanon Under Attack by Israel

For the second consecutive day, Lebanon, my beloved country, is under the Israeli bombing and attack!!!


Civilians are being killed more than 50 up till now, most of our main roads and bridges have been destroyed. This morning I woke up on the sounds of the bombs hitting our airport in Beirut, since I do live beside the airport!


Is there any one asking for what is happening in our area? Is there any UN there in the world? Is there any country that accepts its land to be bombarded like that? I am sure not!!


God bless you Lebanon, and give your people all the strength to be patient and bear the terrorism practiced by our enemy Israel!!