I have gridview control on my web page and I allow the user to add a serial number to a textbox in each row of the gridview. If they do not enter a serial number, I want to display a message. Here is my ASP.Net code:
<tr>
<td>
<asp:GridView ID="gvItems"
runat="server"
AutoGenerateColumns="False"
DataKeyNames="RmaDetailId"
OnRowDataBound="gvItems_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Sku">
<ItemTemplate>
<asp:Label ID="lblSku" runat="server" Text='<%# Eval("RmaSku") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Description">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Serial Number">
<ItemTemplate>
<asp:TextBox ID="txtSerialNum" runat="server" Text='<%# Eval("SerialNum") %>'>
</asp:TextBox>
<asp:RequiredFieldValidator ID="rfv1"
runat="server"
ControlToValidate="txtSerialNum"
ErrorMessage="*"
ForeColor="Red">
</asp:RequiredFieldValidator>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblErrorsExist1" runat="server" Font-Bold="true" Visible="false">Please Complete All Required Fields </asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" Font-Bold="True" ForeColor="Maroon" OnClick="btnSubmit_Click" />
</td>
</tr>
Here is my C# code for the button click event:
protected void btnSubmit_Click(object sender, EventArgs e)
{
foreach (GridViewRow dr in gvItems.Rows)
{
Label lRmaDetailId = dr.FindControl("lblRmaDetailId") as Label;
Label lSku = dr.FindControl("lblSku") as Label;
Label lSerReq = dr.FindControl("lblRmaSerialNumRequired") as Label;
TextBox sn = dr.FindControl("txtSerialNum") as TextBox;
Session["ErrorsExist"] = "";
lblErrorsExist1.Visible = false;
if (lSerReq.Text == "Y")
{
if (sn.Text.Length == 0)
{
lblErrorsExist1.Visible = true;
Session["ErrorsExist"] = "Y";
}
else
{
sn.BackColor = Color.White;
}
}
}
}
But when I enter a serial number value, the page displays the error message saying "Please Complete All Required Fields". While in debug mode, sn.Text.Length is = 0. But I enter a value like "XXXXXXX". What am I doing wrong?