Click here to Skip to main content
15,918,742 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi
I have a GridView , I want add a row FooterTemplate to add a new record in GridView . But I want to validate TextBoxs in FooterTemplate.I use a linkbutton for adding. My language I using is C# , Web Form .

Thanks
Posted

Hi Have a look on this example

XML
<script>
                function Validate(txtNameId) {
                        if (document.getElementById(txtNameId).value.length > 0)
                                return true;
                        alert('Name should not be empty');
                        return false;
                }
</script>

C#
</head>
<body>
        <form id="form1" runat="server">
        <asp:GridView ID="GridView1" AutoGenerateColumns="false" ShowFooter="true" runat="server">
                <Columns>
                        <asp:TemplateField HeaderText="Id">
                                <ItemTemplate>
                                        <asp:Label ID="lblId" runat="server" Text='<%# Eval("ID" )%>'></asp:Label>
                                </ItemTemplate>
                                <FooterTemplate>
                                        <asp:TextBox ID="txtId" runat="server"></asp:TextBox>
                                </FooterTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Name">
                                <ItemTemplate>
                                        <asp:Label ID="lblName" runat="server" Text='<%# Eval("Name" )%>'></asp:Label>
                                </ItemTemplate>
                                <FooterTemplate>
                                        <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
                                        &nbsp;&nbsp;
                                        <asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" />
                                </FooterTemplate>
                        </asp:TemplateField>
                </Columns>
        </asp:GridView>
        </form>

C#
protected void Page_Load(object sender, EventArgs e)
        {
                if (!Page.IsPostBack)
                {
                        this.BindGrid();
                }
        }

C#
protected void btnAdd_Click(object sender, EventArgs e)
       {
               DataTable dt = GetDT();
               String id = (this.GridView1.FooterRow.FindControl("txtId") as TextBox).Text;
               String Name = (this.GridView1.FooterRow.FindControl("txtName") as TextBox).Text;
               dt.Rows.Add(new Object[] { id, Name });
               ViewState["DT"] = dt;
               this.BindGrid();
       }

C#
private void BindGrid()
        {
                DataTable dt = GetDT();
                this.GridView1.DataSource = dt;
                this.GridView1.DataBind();
                Button btnAdd = (this.GridView1.FooterRow.FindControl("btnAdd") as Button);
                btnAdd.Attributes.Add("onclick", "return Validate('" + this.GridView1.FooterRow.FindControl("txtName").ClientID + "')");
        }

C#
private DataTable GetDT()
        {
                if (ViewState["DT"] == null)
                {
                        DataTable dt = new DataTable();
                        dt.Columns.Add("Id");
                        dt.Columns.Add("Name");
                        ViewState["DT"] = dt;
                        dt.Rows.Add(dt.NewRow());
                        return dt;
                }
                return ViewState["DT"] as DataTable;
        }
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900