Javascript 如何在asp.net中更新GridView的行时更改该行的特定输入字段值

Javascript 如何在asp.net中更新GridView的行时更改该行的特定输入字段值,javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,我有一个表单,其中用户有两个日期输入字段(从_date,到_date) 根据日期,计算天数并存储在第三个输入(天)中 这种形式的数据存储在SQL数据库中 此表在下一页上显示为网格视图,用户可以在其中编辑行数据。但在更新行时,所有输入字段都会成功更新,但问题是输入字段的天数需要根据输入的两个日期自行更新 但我不知道在哪里需要编写逻辑代码,以便更新网格视图中的第三个输入 网格视图设计: <asp:GridView ID="GridView1" CssClass="table table-bo

我有一个表单,其中用户有两个日期输入字段(从_date,到_date)

根据日期,计算天数并存储在第三个输入(天)中

这种形式的数据存储在SQL数据库中

此表在下一页上显示为网格视图,用户可以在其中编辑行数据。但在更新行时,所有输入字段都会成功更新,但问题是输入字段的天数需要根据输入的两个日期自行更新

但我不知道在哪里需要编写逻辑代码,以便更新网格视图中的第三个输入

网格视图设计:

 <asp:GridView ID="GridView1" CssClass="table table-bordered table-sm" runat="server" AutoGenerateColumns="False" DataKeyNames="Sr_No" DataSourceID="SqlDataSource1">
            <Columns>

                <asp:TemplateField HeaderText="Sr_No" InsertVisible="False" SortExpression="Sr_No">
                    <EditItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("Sr_No") %>'></asp:Label>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("Sr_No") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>



                <asp:TemplateField HeaderText="From_Date" SortExpression="From_Date">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" TextMode="Date" Text='<%# Bind("From_Date") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("From_Date") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="To_Date" SortExpression="To_Date">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" TextMode="Date" Text='<%# Bind("To_Date") %>' OnChange="abc()"></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label4" runat="server" Text='<%# Bind("To_Date") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="No_Of_Days" SortExpression="No_Of_Days">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("No_Of_Days") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label5" runat="server" Text='<%# Bind("No_Of_Days") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>



                <asp:TemplateField>  
                <ItemTemplate>  
                    <asp:Button ID="btn_Edit" runat="server" CssClass="btn btn-info" Text="Edit" CommandName="Edit" />  
                </ItemTemplate>  
                <EditItemTemplate>  
                    <asp:Button ID="btn_Update" runat="server" CssClass="btn btn-primary" Text="Update" CommandName="Update"/>  
                    <asp:Button ID="btn_Cancel" runat="server" CssClass="btn btn-warning" Text="Cancel" CommandName="Cancel"/>  
                </EditItemTemplate>  
            </asp:TemplateField> 

            </Columns>
        </asp:GridView>

您可以编辑您的No_Of_Days模板字段,如下所示

 <asp:TemplateField HeaderText="No_Of_Days" SortExpression="No_Of_Days">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox4" runat="server" Text='<%# (Convert.ToDateTime(Eval("To_Date"))!=null && Convert.ToDateTime(Eval("From_Date"))!=null)?(Convert.ToDateTime(Eval("To_Date"))-Convert.ToDateTime(Eval("From_Date"))).Days:0 %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label5" runat="server" Text='<%#  (Convert.ToDateTime(Eval("To_Date"))!=null && Convert.ToDateTime(Eval("From_Date"))!=null)?(Convert.ToDateTime(Eval("To_Date"))-Convert.ToDateTime(Eval("From_Date"))).Days:0 %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

我试过这个,但没用。它显示错误:不接受空值。这就好像textbox保持为空,并且在使用此代码时不会发生任何事情
 <asp:TemplateField HeaderText="No_Of_Days" SortExpression="No_Of_Days">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox4" runat="server" Text='<%# (Convert.ToDateTime(Eval("To_Date"))!=null && Convert.ToDateTime(Eval("From_Date"))!=null)?(Convert.ToDateTime(Eval("To_Date"))-Convert.ToDateTime(Eval("From_Date"))).Days:0 %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label5" runat="server" Text='<%#  (Convert.ToDateTime(Eval("To_Date"))!=null && Convert.ToDateTime(Eval("From_Date"))!=null)?(Convert.ToDateTime(Eval("To_Date"))-Convert.ToDateTime(Eval("From_Date"))).Days:0 %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>