Answered by:
Check Data Before Adding New Row

Question
-
User-807418713 posted
Hello
This is my aspx code
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="TESTFile.aspx.cs" Inherits="TESTFile" Title="Untitled Page" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <asp:gridview ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="RowNumber" HeaderText="Row Number" /> <asp:TemplateField HeaderText="Belongs"> <ItemTemplate> <asp:DropDownList ID="D1" runat="server"> <asp:ListItem Text="AA"></asp:ListItem> <asp:ListItem Text="BB"></asp:ListItem> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Item Code"> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='C004'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Enter AA Data"> <ItemTemplate> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Enter BB Data"> <ItemTemplate> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> </ItemTemplate> <FooterStyle HorizontalAlign="Right" /> <FooterTemplate> <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" /> </FooterTemplate> </asp:TemplateField> </Columns> </asp:gridview> </asp:Content>
This is my code behind
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Collections.Specialized; using System.Text; using System.Drawing; using System.IO; using System.Net; using System.Net.Mail; using System.Net.Configuration; public partial class TESTFile : System.Web.UI.Page { private void SetInitialRow() { DataTable dt = new DataTable(); DataRow dr = null; dt.Columns.Add(new DataColumn("RowNumber", typeof(string))); dt.Columns.Add(new DataColumn("Column0", typeof(string))); dt.Columns.Add(new DataColumn("Column1", typeof(string))); dt.Columns.Add(new DataColumn("Column2", typeof(string))); dt.Columns.Add(new DataColumn("Column3", typeof(string))); dr = dt.NewRow(); dr["RowNumber"] = 1; dr["Column0"] = string.Empty; dr["Column1"] = string.Empty; dr["Column2"] = string.Empty; dr["Column3"] = string.Empty; dt.Rows.Add(dr); //dr = dt.NewRow(); //Store the DataTable in ViewState ViewState["CurrentTable"] = dt; Gridview1.DataSource = dt; Gridview1.DataBind(); } private void AddNewRowToGrid() { int rowIndex = 0; if (ViewState["CurrentTable"] != null) { DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"]; DataRow drCurrentRow = null; if (dtCurrentTable.Rows.Count > 0) { for (int i = 1; i <= dtCurrentTable.Rows.Count; i++) { //extract the TextBox values DropDownList box0 = (DropDownList)Gridview1.Rows[rowIndex].Cells[1].FindControl("D1"); TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox1"); TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2"); TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[4].FindControl("TextBox3"); drCurrentRow = dtCurrentTable.NewRow(); drCurrentRow["RowNumber"] = i + 1; dtCurrentTable.Rows[i - 1]["Column0"] = box0.Text; dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text; dtCurrentTable.Rows[i - 1]["Column2"] = box2.Text; dtCurrentTable.Rows[i - 1]["Column3"] = box3.Text; rowIndex++; } dtCurrentTable.Rows.Add(drCurrentRow); ViewState["CurrentTable"] = dtCurrentTable; Gridview1.DataSource = dtCurrentTable; Gridview1.DataBind(); } } else { Response.Write("ViewState is null"); } //Set Previous Data on Postbacks SetPreviousData(); } private void SetPreviousData() { int rowIndex = 0; if (ViewState["CurrentTable"] != null) { DataTable dt = (DataTable)ViewState["CurrentTable"]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DropDownList box0 = (DropDownList)Gridview1.Rows[rowIndex].Cells[1].FindControl("D1"); TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox1"); TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox2"); TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[4].FindControl("TextBox3"); box0.Text = dt.Rows[i]["Column0"].ToString(); box1.Text = dt.Rows[i]["Column1"].ToString(); box2.Text = dt.Rows[i]["Column2"].ToString(); box3.Text = dt.Rows[i]["Column3"].ToString(); rowIndex++; } } } } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { SetInitialRow(); } } protected void ButtonAdd_Click(object sender, EventArgs e) { AddNewRowToGrid(); } }
on page run
1) if user select AA data from dropdownlist and missed entering number in BBdata column textbox i want to show alert "You have selected BB but you have not entered any data in BB data textbox please enter data" make empty to that textbox so that user can enter data again
2) Same if user select BB data from dropdownlist and missed entering number in AA data column textbox i want to show alert "You have selected AA but you have not entered any data in AA data textbox please enter data" make empty to that textbox so that user can enter data again
How to do so using javascript or jquery without postback
Thanking You
Wednesday, November 13, 2019 5:01 PM
Answers
-
User288213138 posted
Hi Gopi.MCA,
Gopi.MCA
Javascript not working from my sideCan you tell me what problems have you encountered by using Javascript?
Gopi.MCA
Can we have using Code behind C# on button click checkIf you want do that in code behind, you can try to below code:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:GridView ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="RowNumber" HeaderText="Row Number" /> <asp:TemplateField HeaderText="Belongs"> <ItemTemplate> <asp:DropDownList ID="D1" runat="server"> <asp:ListItem Text="AA"></asp:ListItem> <asp:ListItem Text="BB"></asp:ListItem> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Item Code"> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='C004'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Enter AA Data"> <ItemTemplate> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Enter BB Data"> <ItemTemplate> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> </ItemTemplate> <FooterStyle HorizontalAlign="Right" /> <FooterTemplate> <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" OnClick="ButtonAdd_Click" /> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> protected void ButtonAdd_Click(object sender, EventArgs e) { for (int i = 0; i < Gridview1.Rows.Count; i++) { DropDownList ddl = (DropDownList)Gridview1.Rows[i].FindControl("D1"); TextBox Ta = (TextBox)Gridview1.Rows[i].FindControl("TextBox2"); TextBox Tb = (TextBox)Gridview1.Rows[i].FindControl("TextBox3"); if (ddl.Text == "AA" & Ta.Text == "") { ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('You have selected AA but you have not entered any data in AA data textbox please enter data');", true); Tb.Text = null; return; } else if (ddl.Text == "BB" & Tb.Text == "") { ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('You have selected BB but you have not entered any data in BB data textbox please enter data');", true); Ta.Text = null; return; } } AddNewRowToGrid(); }
The result:
Best regards,
sam
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Friday, November 15, 2019 4:12 AM
All replies
-
User288213138 posted
Hi Gopi.MCA,
1) if user select AA data from dropdownlist and missed entering number in BBdata column textbox i want to show alert "You have selected BB but you have not entered any data in BB data textbox please enter data" make empty to that textbox so that user can enter data again
2) Same if user select BB data from dropdownlist and missed entering number in AA data column textbox i want to show alert "You have selected AA but you have not entered any data in AA data textbox please enter data" make empty to that textbox so that user can enter data again
How to do so using javascript or jquery without postback
If you want without postback, you can put the button in the updatepanel control.
The code:
<script> function pageLoad() { $("#Gridview1_ButtonAdd").click(function () { if ($("#Gridview1_D1_0").val() == "AA" & $("#Gridview1_TextBox2_0").val().length == 0) { alert("You have selected AA but you have not entered any data in AA data textbox please enter data"); $("#Gridview1_TextBox3_0").val(''); } else if ($("#Gridview1_D1_0").val() == "BB" & $("#Gridview1_TextBox3_0").val().length == 0) { alert("You have selected BB but you have not entered any data in BB data textbox please enter data"); $("#Gridview1_TextBox2_0").val(''); } }); }; </script> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:GridView ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="RowNumber" HeaderText="Row Number" /> <asp:TemplateField HeaderText="Belongs"> <ItemTemplate> <asp:DropDownList ID="D1" runat="server"> <asp:ListItem Text="AA"></asp:ListItem> <asp:ListItem Text="BB"></asp:ListItem> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Item Code"> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='C004'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Enter AA Data"> <ItemTemplate> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Enter BB Data"> <ItemTemplate> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> </ItemTemplate> <FooterStyle HorizontalAlign="Right" /> <FooterTemplate> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row"/> </ContentTemplate> </asp:UpdatePanel> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView>
The result:
Best regards,
sam
Thursday, November 14, 2019 10:55 AM -
User-807418713 posted
Hello
Javascript not working from my side
Can we have using Code behind C# on button click check
Thanking You
Thursday, November 14, 2019 6:28 PM -
User288213138 posted
Hi Gopi.MCA,
Gopi.MCA
Javascript not working from my sideCan you tell me what problems have you encountered by using Javascript?
Gopi.MCA
Can we have using Code behind C# on button click checkIf you want do that in code behind, you can try to below code:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:GridView ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="RowNumber" HeaderText="Row Number" /> <asp:TemplateField HeaderText="Belongs"> <ItemTemplate> <asp:DropDownList ID="D1" runat="server"> <asp:ListItem Text="AA"></asp:ListItem> <asp:ListItem Text="BB"></asp:ListItem> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Item Code"> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='C004'></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Enter AA Data"> <ItemTemplate> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Enter BB Data"> <ItemTemplate> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> </ItemTemplate> <FooterStyle HorizontalAlign="Right" /> <FooterTemplate> <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" OnClick="ButtonAdd_Click" /> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> protected void ButtonAdd_Click(object sender, EventArgs e) { for (int i = 0; i < Gridview1.Rows.Count; i++) { DropDownList ddl = (DropDownList)Gridview1.Rows[i].FindControl("D1"); TextBox Ta = (TextBox)Gridview1.Rows[i].FindControl("TextBox2"); TextBox Tb = (TextBox)Gridview1.Rows[i].FindControl("TextBox3"); if (ddl.Text == "AA" & Ta.Text == "") { ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('You have selected AA but you have not entered any data in AA data textbox please enter data');", true); Tb.Text = null; return; } else if (ddl.Text == "BB" & Tb.Text == "") { ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('You have selected BB but you have not entered any data in BB data textbox please enter data');", true); Ta.Text = null; return; } } AddNewRowToGrid(); }
The result:
Best regards,
sam
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Friday, November 15, 2019 4:12 AM