0

私は請求書番号をドロップダウンリストにフォームからドロップダウンリストに取り、請求書番号を選択した後、すべての製品を追加、価格、およびすべてでグリッドビューに表示できます。

私の問題は、行を編集するために2回クリックする必要があることですが、更新されていません。最初の行の編集ボタンをクリックすると、機能しませんが、次の行をクリックすると、最初の行の編集ボタンが有効になります編集テキストボックスですが、グリッド上の空のデータのみを更新するわけではありません...

画像 http://i.stack.imgur.com/X8W6Q.gif

この部分では、データをグリッドに取り込みます..

    DataTable DataTbt = new DataTable();
    SqlCommand Command = new SqlCommand();
    SqlDataAdapter DtaAdapter = new SqlDataAdapter();

    protected void ddlInvoiceNumber_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            GetReturnRecords("Invoice No", ddlInvoiceNumber.SelectedValue);
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", String.Format("alert('Error occured : {0}');", ex.Message), true);
        }
        finally
        {
            DataTbt.Clear();
            DataTbt.Dispose();
            DtaAdapter.Dispose();
            Command.Dispose();
            Connection.Close();
        }
    }

    private void GetReturnRecords(string searchBy, string searchVal)
    {
        try
        {
            Command = new SqlCommand("SP_SearchPurchasesLines", Connection);
            Command.CommandType = CommandType.StoredProcedure;
            Command.Parameters.AddWithValue("@SearchBy", searchBy);
            Command.Parameters.AddWithValue("@SearchVal", searchVal);
            DtaAdapter.SelectCommand = Command;
            DtaAdapter.Fill(DataTbt);
            if (DataTbt.Rows.Count > 0)
            {
                GridViewPurchaseReturn.DataSource = DataTbt;
                GridViewPurchaseReturn.DataBind();
            }
            else
            {
                GridViewPurchaseReturn.DataSource = DataTbt;
                GridViewPurchaseReturn.DataBind();
            }
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", String.Format("alert('Error occured : {0}');", ex.Message), true);
        }
        finally
        {
            DataTbt.Clear();
            DataTbt.Dispose();
            Command.Dispose();
            Connection.Close();
        }
    }

グリッドへのデータバインディング..

    private void BindReturnGrid()
    {
        try
        {
            DtaAdapter = new SqlDataAdapter("SP_SearchPurchasesLines", Connection);
            DtaAdapter.Fill(DataTbt);
            if (DataTbt.Rows.Count > 0)
            {
                GridViewPurchaseReturn.DataSource = DataTbt;
                GridViewPurchaseReturn.DataBind();
            }
            else
            {
                GridViewPurchaseReturn.DataSource = null;
                GridViewPurchaseReturn.DataBind();
            }
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "alert('Error occured : " + ex.Message.ToString() + "');", true);
        }
        finally
        {
            DataTbt.Clear();
            DataTbt.Dispose();
            DtaAdapter.Dispose();
            Connection.Close();
        }
    }

編集中 グリッドから行を削除中...

    protected void GridViewPurchaseReturn_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridViewPurchaseReturn.EditIndex = -1;
        BindReturnGrid();
    }

    protected void GridViewPurchaseReturn_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridViewPurchaseReturn.EditIndex = e.NewEditIndex;
        BindReturnGrid();
    }
4

2 に答える 2