C# 访问Gridview EditItemTemplate时出错

C# 访问Gridview EditItemTemplate时出错,c#,asp.net,gridview,edititemtemplate,C#,Asp.net,Gridview,Edititemtemplate,下面是我的错误消息: System.NullReferenceException:'对象引用未设置为 对象的实例。” DueDateTB为空 当我开始更新Gridview中的日期列时,在执行过程中会发生这种情况。下面是我前面和后面的代码 背面: protected void PaymentsDueGV_RowUpdating(object sender, GridViewUpdateEventArgs e) { TextBox DueDateTB = (TextBox)((GridView)

下面是我的错误消息:

System.NullReferenceException:'对象引用未设置为 对象的实例。”

DueDateTB为空

当我开始更新Gridview中的日期列时,在执行过程中会发生这种情况。下面是我前面和后面的代码

背面:

protected void PaymentsDueGV_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
  TextBox DueDateTB = (TextBox)((GridView)sender).FindControl("DueDateTB");
  string DueDate = DueDateTB.Text;
  DueDateTB.Text= (Convert.ToDateTime(DueDateTB.Text)).ToString("dddd, MMMM dd, yyyy h:mm tt");
  PaymentsDueDS.UpdateParameters["DueDate"].DefaultValue = DueDateTB.Text;
}
正面:

<asp:TemplateField HeaderText="Due Date" SortExpression="CreatedDate" ItemStyle-HorizontalAlign="Center">
  <EditItemTemplate>
    <asp:TextBox runat="server" Text='<%# Convert.ToDateTime(Eval("DueDate")).ToLocalTime().ToString("d") %>' ID="DueDateTB" CausesValidation="True" Columns="5" MaxLength="10"></asp:TextBox>
      <asp:RequiredFieldValidator ID="DueDateTBRValidator" runat="server" ErrorMessage="*"
           ForeColor="Black" ControlToValidate="DueDateTB">
      </asp:RequiredFieldValidator>
  <asp:CalendarExtender ID="DueDateCE" runat="server" Enabled="True" TargetControlID="DueDateTB" Format="MM/dd/yyyy"></asp:CalendarExtender>
  </EditItemTemplate>
  <ItemTemplate>
      <asp:Label ID="lblLocalTime" runat="server" Text='<%# Convert.ToDateTime(Eval("DueDate")).ToLocalTime().ToString("d") %>'></asp:Label>
  </ItemTemplate>
  <HeaderStyle CssClass="GridCells"></HeaderStyle>
  <ItemStyle CssClass="GridCells"></ItemStyle>
  <FooterStyle CssClass="GridCells"></FooterStyle>
</asp:TemplateField>

您必须将
发送方
对象强制转换为
网格视图行
而不是
网格视图
,如下所示:

TextBox DueDateTB = (TextBox)((GridViewRow)sender).FindControl("DueDateTB");

您必须将
sender
对象强制转换为
GridViewRow
而不是
GridView
,如下所示:

TextBox DueDateTB = (TextBox)((GridViewRow)sender).FindControl("DueDateTB");