为什么我的gridview不进入编辑模式?

时间:2020-02-06 17:50:53

标签: asp.net gridview

我试图更新我的gridview,我以前在另一个Web表单上做了它,它工作得很好,但是现在当我单击编辑按钮时,它甚至都没有进入编辑模式。 我有命令去做可能会影响这种情况的事情吗?

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="FOLIO" DataSourceID="SqlDataSource1" OnRowEditing="GridView1_RowEditing1" OnRowCancelingEdit="GridView1_RowCancelingEdit1" OnRowUpdating="GridView1_RowUpdating"  OnRowCommand="GridView1_RowCommand">
    <Columns>
        <asp:TemplateField>
            <EditItemTemplate>
                <asp:LinkButton ID="lbtnUpdate" runat="server" CommandName="Update" CausesValidation="true" Text="Actualizar"> </asp:LinkButton>
                <asp:LinkButton ID="lbtnCancelar" runat="server" CommandName="Cancel" CausesValidation="false" Text="Cancelar"> </asp:LinkButton>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit" CausesValidation="false" Text="Editar"> </asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="FOLIO" SortExpression="FOLIO">
            <EditItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("FOLIO") %>'></asp:Label>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("FOLIO") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="NO_EMPL_CAPTURO" SortExpression="NO_EMPL_CAPTURO">
            <EditItemTemplate>
                <asp:TextBox ID="txtNoEmplCaptG" runat="server" Text='<%# Bind("NO_EMPL_CAPTURO") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label2" runat="server" Text='<%# Bind("NO_EMPL_CAPTURO") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="FECHA_CAPTURO" SortExpression="FECHA_CAPTURO">
            <EditItemTemplate>
                <asp:TextBox ID="txtFechaCaptG" runat="server" Text='<%# Bind("FECHA_CAPTURO") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label3" runat="server" Text='<%# Bind("FECHA_CAPTURO") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="DEPTO" SortExpression="DEPTO">
            <EditItemTemplate>
                <asp:TextBox ID="txtDeptoG" runat="server" Text='<%# Bind("DEPTO") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label4" runat="server" Text='<%# Bind("DEPTO") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="NO_EMPL_JEFE" SortExpression="NO_EMPL_JEFE">
            <EditItemTemplate>
                <asp:TextBox ID="txtNoEmplJefeG" runat="server" Text='<%# Bind("NO_EMPL_JEFE") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label5" runat="server" Text='<%# Bind("NO_EMPL_JEFE") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="FECHA_AUT_JEFE" SortExpression="FECHA_AUT_JEFE">
            <EditItemTemplate>
                <asp:TextBox ID="txtFechaAutJefeG" runat="server" Text='<%# Bind("FECHA_AUT_JEFE") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label6" runat="server" Text='<%# Bind("FECHA_AUT_JEFE") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="NO_EMPL_SUB" SortExpression="NO_EMPL_SUB">
            <EditItemTemplate>
                <asp:TextBox ID="txtNoEmplSubG" runat="server" Text='<%# Bind("NO_EMPL_SUB") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label7" runat="server" Text='<%# Bind("NO_EMPL_SUB") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="FECHA_AUT_SUB" SortExpression="FECHA_AUT_SUB">
            <EditItemTemplate>
                <asp:TextBox ID="txtFechaAutSubG" runat="server" Text='<%# Bind("FECHA_AUT_SUB") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label8" runat="server" Text='<%# Bind("FECHA_AUT_SUB") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="ESTADO" SortExpression="ESTADO">
            <EditItemTemplate>
                <asp:TextBox ID="txtEstadoG" runat="server" Text='<%# Bind("ESTADO") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label9" runat="server" Text='<%# Bind("ESTADO") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="NO_EMPL" SortExpression="NO_EMPL">
            <EditItemTemplate>
                <asp:TextBox ID="txtNoEmplG" runat="server" Text='<%# Bind("NO_EMPL") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label10" runat="server" Text='<%# Bind("NO_EMPL") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
     </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString5 %>" ProviderName="<%$ ConnectionStrings:ConnectionString5.ProviderName %>" SelectCommand="SELECT * FROM FOLIOS_HRS_EXTRA WHERE FOLIO=:FOLIO" UpdateCommand="UPDATE FOLIOS_HRS_EXTRA SET NO_EMPL_CAPTURO=:NO_EMPL_CAPTURO, FECHA_CAPTURO=:FECHA_CAPTURO, DEPTO=:DEPTO, NO_EMPL_JEFE=:NO_EMPL_JEFE, FECHA_AUT_JEFE=:FECHA_AUT_JEFE, NO_EMPL_SUB=:NO_EMPL_SUB, FECHA_AUT_SUB=:FECHA_AUT_SUB, ESTADO=:ESTADO, NO_EMPL=:NO_EMPL WHERE FOLIO=:FOLIO">
    <SelectParameters>
        <asp:ControlParameter ControlID="lblFolio" Name="FOLIO" PropertyName="Text" Type="Decimal" />
    </SelectParameters>
    <UpdateParameters>
        <asp:Parameter Name=":NO_EMPL_CAPTURO" />
        <asp:Parameter Name=":FECHA_CAPTURO" Type="DateTime" />
        <asp:Parameter Name=":DEPTO"/>
        <asp:Parameter Name=":NO_EMPL_JEFE"/>
        <asp:Parameter Name=":FECHA_AUT_JEFE" Type="DateTime" />
        <asp:Parameter Name=":NO_EMPL_SUB" />
        <asp:Parameter Name=":FECHA_AUT_SUB" Type="DateTime" />
        <asp:Parameter Name=":ESTADO"/>
        <asp:Parameter Name=":NO_EMPL" />
        <asp:Parameter Name=":FOLIO" />
    </UpdateParameters>
</asp:SqlDataSource>

我的OnRowEditing,OnRowCancelEditing和OnRowUpdating也有代码。

protected void GridView1_RowEditing1(object sender, GridViewEditEventArgs e)
{
    GridView1.EditIndex = e.NewEditIndex;
    GridView1.DataBind();
}
protected void GridView1_RowCancelingEdit1(object sender, GridViewCancelEditEventArgs e)
{
    GridView1.EditIndex = -1;
    GridView1.DataBind();
}

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    using(OracleConnection conn= new OracleConnection("Data Source=RH; User Id=rechum; Password=madrec3v"))
    {
        conn.Open();
        string sqlCom = "UPDATE FOLIOS_HRS_EXTRA SET NO_EMPL_CAPTURO=:NO_EMPL_CAPTURO, FECHA_CAPTURO=:FECHA_CAPTURO, DEPTO=:DEPTO, NO_EMPL_JEFE=:NO_EMPL_JEFE, FECHA_AUT_JEFE=:FECHA_AUT_JEFE, NO_EMPL_SUB=:NO_EMPL_SUB, FECHA_AUT_SUB=:FECHA_AUT_SUB, ESTADO=:ESTADO, NO_EMPL=:NO_EMPL WHERE FOLIO=:FOLIO";
        OracleCommand cmd = new OracleCommand(sqlCom, conn);

        cmd.Parameters.AddWithValue(":NO_EMPL_CAPTURO", (GridView1.Rows[e.RowIndex].FindControl("txtNoEmplCaptG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":FECHA_CAPTURO", (GridView1.Rows[e.RowIndex].FindControl("txtFechaCaptG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":DEPTO", (GridView1.Rows[e.RowIndex].FindControl("txtDeptoG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":NO_EMPL_JEFE", (GridView1.Rows[e.RowIndex].FindControl("txtNoEmplJefeG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":FECHA_AUT_JEFE", (GridView1.Rows[e.RowIndex].FindControl("txtFechaAutJefeG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":NO_EMPL_SUB", (GridView1.Rows[e.RowIndex].FindControl("txtNoEmplSubG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":FECHA_AUT_SUB", (GridView1.Rows[e.RowIndex].FindControl("txtFechaAutSubG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":ESTADO", (GridView1.Rows[e.RowIndex].FindControl("txtEstadoG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":NO_EMPL", (GridView1.Rows[e.RowIndex].FindControl("txtNoEmplG") as TextBox).Text.Trim());
        cmd.Parameters.AddWithValue(":folio", Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString()));

        cmd.ExecuteNonQuery();
        GridView1.EditIndex = -1;

    }
}

1 个答案:

答案 0 :(得分:0)

您应该在调用DataBind()之前设置数据源

创建一个函数调用BindGridData(GridView grid),然后调用它。

设置grid.Datasource并在函数中调用grid.Databind()。

相关问题