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
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
IIS.NET forums are moving to a new home on Microsoft Q&A, we encourage you to go to Microsoft Q&A for .NET for posting new questions and get involved today. Learn more >
Can you tell me what problems have you encountered by using Javascript?
Gopi.MCA
Can we have using Code behind C# on button click check
If 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
IIS.NET forums are moving to a new home on Microsoft Q&A, we encourage you to go to Microsoft Q&A for .NET for posting new questions and get involved today. Learn more >
Member
304 Points
711 Posts
Check Data Before Adding New Row
Nov 13, 2019 05:01 PM|Gopi.MCA|LINK
Hello
This is my aspx code
This is my code behind
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
Contributor
3370 Points
1409 Posts
Re: Check Data Before Adding New Row
Nov 14, 2019 10:55 AM|samwu|LINK
Hi Gopi.MCA,
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
Member
304 Points
711 Posts
Re: Check Data Before Adding New Row
Nov 14, 2019 06:28 PM|Gopi.MCA|LINK
Hello
Javascript not working from my side
Can we have using Code behind C# on button click check
Thanking You
Contributor
3370 Points
1409 Posts
Re: Check Data Before Adding New Row
Nov 15, 2019 04:12 AM|samwu|LINK
Hi Gopi.MCA,
Can you tell me what problems have you encountered by using Javascript?
If you want do that in code behind, you can try to below code:
The result:
Best regards,
sam