Introduction
We often observe a gridview
"bug" that we are saving the string
data in the database just like this "Testing Testing1 Testing2 Testing123
", but when it is shown in the gridview
, it looks like this "Testing Testing1 Testing2 Testing123
".
GridView
eats the multiple spaces. This is only because of the browser that parses HTML. It never knows spaces, it only considers as space.
Workarounds
If you want to avoid the automatic elimination of multiple spaces string
type data inside gridview
, there are some workarounds that exist for it.
1. BoundField
In case if you are using the BoundField
, then define it in this way.
<asp:BoundField DataField="description" DataFormatString="<pre>{0}</pre>"
HtmlEncode="False" />
There are two important properties of this field:
- Keep the
HtmlEncode=False
- Enclose the
DataFormatString
inside the <pre></pre>
tag
2. TemplateField
If you are using the TemplateField
, then define your template field in this way.
<asp:TemplateField ConvertEmptyStringToNull="False">
<ItemTemplate>
<pre ><asp:Label ID="Label1" runat="server"
Text='<%# Bind("description") %>'></asp:Label></pre>
</ItemTemplate>
</asp:TemplateField>
There is one important property that needs to be set in this case:
- Enclose your template control inside the
<pre></pre>
tag (in the above example, I have enclosed the Label
control inside <pre></pre>
.
Save the HTML Friendly Spaces
If you don't want to enclose BoundField
or the TemplateColumn
inside the <pre></pre>
tags, then you have to manually change the space with HTML compatible space, i.e. at the time while saving it in the database.
A very simple way is to use the Replace
function of string
. Just like this:
string str = "Testing Testing1 Testing2 Testing123";
str.Replace(" ", " ");
History
- 6th November, 2008: Initial post
A computer science graduate with senior-level programming skills, Raheel Afzal has developed a number of management information systems and real estate portals. Through his work with other companies, Raheel was highly exposed to client relations, as well as American business models and operations.
Raheel started DatumSquare IT Services in 2009, facilitating daily operational management. His previous career experience and administration expertise have given him the insight and strategic planning skills to successfully transform a two-employee company into a thriving business with more than 60 highly skilled employees on staff.
Raheel presently resides in Rawalpindi, Pakistan, with his wife and two children. In his spare time he loves to read historical books and keep up with the latest worldly technological advancements.