FormView shows weird symbols in Edit Mode for Empty data field.

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
I have a formview that loads data for one row in a table on Page_Load event. Everything works fine except that if I delete data from a field in Edit Mode, save it and then go back to Edit mode, the recently emptied field shows a curious ? symbol.
If I hit save with the symbol, it gets saved in database.
I tried doing the following in the FormView DataBound event:
Dim mi As TextBox = CType(FormView1.FindControl("MiddleInitialTextBox"), TextBox)
<br/>
mi.Text = ""
but this shows an empty textbox in Edit mode even if there is data in that field in other modes (obviously, but that was a try). Can someone tell me why this is happening? I checked the markup for FormView, and there is no typo there. This is the markup
if anyone wants to see:
<asp:FormView ID="FormView1" runat="server" DataKeyNames="TableID" <br/>
DataSourceID="LinqDataSource1" Width="810px <br/>
<EditItemTemplate>
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
<br/>
CommandName="Update" Text="Save" /><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<br/>
<asp:LinkButton ID="UpdateCancelButton" runat="server"
<br/>
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
<br />
<br />
<table width="810 <br/>
<tr><br/>
<td width="200 TitleOfCourtesy:</td><br/>
<td width="200 <br/>
<asp:TextBox ID="TitleOfCourtesyTextBox" runat="server"
<br/>
Text=<%# Bind("TitleOfCourtesy") %> /><br/>
</td><br/>
<td width="10 </td><br/>
<td width="200 BirthDate:</td><br/>
<td width="200 <br/>
<asp:TextBox ID="BirthDateTextBox" runat="server"
<br/>
Text=<%# Bind("BirthDate","{0:MM/dd/yyyy}") %> /><br/>
</td><br/>
</tr><br/>
<tr><br/>
<td width="200 <br/>
FirstName:</td><br/>
<td width="200 <br/>
<asp:TextBox ID="FirstNameTextBox" runat="server"
<br/>
Text=<%# Bind("FirstName") %> /><br/>
<asp:RequiredFieldValidator ID="FirstNameValidator" runat="server"<br/>
ControlToValidate="FirstNameTextBox" ErrorMessage="Required!"<br/>
Text="*" /><br/>
</td><br/>
<td width="10 <br/>
&nbsp;</td><br/>
<td width="200 <br/>
HireDate:</td><br/>
<td width="200 <br/>

<br/>
</td><br/>
</tr><br/>
<tr><br/>
<td width="200 <br/>
MiddleInitial:<br/>
</td><br/>
<td width="200 <br/>
<asp:TextBox ID="MiddleInitialTextBox" runat="server"
<br/>
Text=<%# Bind("MiddleInitial") %> />
<span style="text-decoration:underline <---- this is the only field where it happens, not for any other. <br/>
</td><br/>
<td width="10 <br/>
&nbsp;</td><br/>
<td width="200 <br/>
JobTitle:</td><br/>
<td width="200 <br/>

<br/>
</td><br/>
</tr><br/>
<tr><br/>
<td width="200 <br/>
LastName:<br/>
</td><br/>
<td width="200 <br/>
<asp:TextBox ID="LastNameTextBox" runat="server"
<br/>
Text=<%# Bind("LastName") %> /><br/>
<asp:RequiredFieldValidator ID="LastNameValidator" runat="server"<br/>
ControlToValidate="LastNameTextBox" ErrorMessage="Required!"<br/>
Text="*" /><br/>
</td><br/>
<td width="10 <br/>
&nbsp;</td><br/>
<td width="200 <br/>
&nbsp;</td><br/>
<td width="200 <br/>
&nbsp;</td><br/>
</tr>
<br/>
<tr><br/>
<td width="200 <br/>
Address:</td><br/>
<td width="200 <br/>
<asp:TextBox ID="AddressTextBox" runat="server" Text=<%# Bind("Address") %> /><br/>
</td><br/>
<td width="10 <br/>
&nbsp;</td><br/>
<td width="200 <br/>
WorkPhone:</td><br/>
<td width="200 <br/>
<asp:TextBox ID="WorkPhoneTextBox" runat="server"
<br/>
Text=<%# Bind("WorkPhone") %> /><br/>
</td><br/>
</tr><br/>
<tr><br/>
<td width="200 <br/>
Email:<br/>
</td><br/>
<td width="200 <br/>
<asp:TextBox ID="EmailTextBox" runat="server" Text=<%# Bind("Email") %> />
<br/>
</td><br/>
<td width="10 <br/>
&nbsp;</td><br/>
<td width="200 <br/>
AlternateEmail:</td><br/>
<td width="200 <br/>
<asp:TextBox ID="AlternateEmailTextBox" runat="server"
<br/>
Text=<%# Bind("AlternateEmail") %> /><br/>
</td><br/>
</tr>
<br/>
<tr><br/>
<td width="200 <br/>
TableID:<br/>
</td><br/>
<td width="200 <br/>
<asp:Label ID="TableIDLabel1" runat="server"
<br/>
Text=<%# Eval("TableID") %> /><br/>
</td><br/>
<td width="10 <br/>
&nbsp;</td><br/>
<td width="200 <br/>
&nbsp;<br/>

<br/>
</td><br/>
<td width="200 <br/>

<br/>
</td><br/>
</tr><br/>
</table>
</EditItemTemplate>
For the MiddleInitial field, the Sql server datatype is nchar(1).

<
Manasi Ranade<br/>
<br/>

View the full article
 
Back
Top