Mr doubt
Mr doubt

Reputation: 65

How to use Ajax Calendar in Grid View to disable past date

I use a CalendarExtender of AjaxControlToolkit in a GridView and a TextBox. And from that TextBox I want to disable future dates.

I am trying below code

<asp:GridView ID="Gridview2" runat="server" AutoGenerateColumns="false" DataKeyNames="Sno" ShowFooter="true" OnRowCommand="Gridview2_RowCommand" CssClass="table table-bordered table-striped"
                                                                                                        OnRowCancelingEdit="Gridview2_RowCancelingEdit" OnRowDeleting="Gridview2_RowDeleting" OnRowEditing="Gridview2_RowEditing" OnRowUpdating="Gridview2_RowUpdating" OnRowDataBound="Gridview2_RowDataBound">                                                                                                           
<Columns>                                                                                                                
<asp:TemplateField HeaderText="Sno" Visible="false">                                                                                                                    
<ItemTemplate>                                                                                                                        
<asp:Label ID="lbl_sno1" runat="server" Text='<%#Eval("Sno") %>' />                                                                                                                    
</ItemTemplate>                                                                                                                
</asp:TemplateField>                                                                                                            
<asp:TemplateField HeaderText="Date of visit" ShowHeader="false">                                                                                                                   
<EditItemTemplate>                                                                                                                       
 <asp:TextBox ID="Txt_update_DateofVisit1" runat="server" Text='<%# Eval("DateofVisit","{0:MM/dd/yyyy}") %>' CssClass="form-control"/>                                                                                                                      
<cc1:CalendarExtender ID="CalendarExtenderedit11" CssClass="Calendar" TargetControlID="Txt_update_DateofVisit1"                                                                                                                          Format="MM/dd/yyyy" runat="server"></cc1:CalendarExtender>                                                                                                                  
</EditItemTemplate>                                                                                                                  
<ItemTemplate>                                                                                                                       
<asp:Label ID="lbl_DateofVisit1" runat="server" Text='<%# Eval("DateofVisit","{0:MM/dd/yyyy}") %>' />                                                                                                                 
</ItemTemplate>                                                                                                                 
<FooterTemplate>                                                                                                                      
<asp:TextBox ID="txt_DateofVisit_add" runat="server" CssClass="form-control"  />                                                                                                                                                                                                                                          
<cc1:CalendarExtender ID="CalendarExtendere21" CssClass="Calendar" TargetControlID="txt_DateofVisit_add"                                                                                                                            Format="MM/dd/yyyy" runat="server"></cc1:CalendarExtender>                                                                                                                
</FooterTemplate>                                                                                                            
</asp:TemplateField>                                                                                                            
<asp:TemplateField>                                                                                                                   
<ItemTemplate>                                                                                                                                                                                                                                              
<asp:ImageButton ID="imgbtnDelete_add" runat="server" CommandName="Delete" ImageUrl="~/img/grid_delete.png"                                                                                                                           Text="Edit" ToolTip="click here to delete" />                                                                                                                    
</ItemTemplate>                                                                                                                  
<FooterTemplate>                                                                                                                        
<asp:ImageButton ID="imgbtnAdd_add" runat="server" CommandName="AddNew" ImageUrl="~/img/grid_add.png"                                                                                                                            ToolTip="click here to add" CausesValidation="true"  ValidationGroup="outadd" />                                                                                                                   
</FooterTemplate>                                                                                                               
</asp:TemplateField>                                                                                                            
</Columns>                                                                                                       
</asp:GridView>

Below is my RowDataBound

protected void Gridview2_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        AjaxControlToolkit.CalendarExtender CalendarExtendere21 = (AjaxControlToolkit.CalendarExtender)Gridview2.FooterRow.FindControl("CalendarExtendere21");
        CalendarExtendere21.EndDate = DateTime.Now;
        // CalendarExtendere21.StartDate = DateTime.Now;
    }
}

I get below error:

Object reference not set to an instance of an object.

Upvotes: 3

Views: 1079

Answers (1)

Hussain Md
Hussain Md

Reputation: 129

just use parameter e to find out control in grid

if (e.Row.RowType == DataControlRowType.Footer)
{
   AjaxControlToolkit.CalendarExtender CalendarExtendere21 = 
   (e.Row.FindControl("CalendarExtendere21") as AjaxControlToolkit.CalendarExtender);
}

and don't forget to check for null

Upvotes: 1

Related Questions