Как войти в событие Layout на datagridview? - PullRequest
0 голосов
/ 14 февраля 2020

Я создал это событие, когда пользователь щелкает ячейку другого вида данных

private void grdDET_Layout(object sender, LayoutEventArgs e)
        {
            //grdDET.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
            //grdDET.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.SortSingle;

            try
            {
                //HEADER
                DataGridView dataGridView;
                dataGridView = new System.Windows.Forms.DataGridView();
                DataGridViewBand oBand = dataGridView.Columns[0];

                if (oBand.DataGridView.Columns.Contains("VerCFD") == false) oBand.DataGridView.Columns.Add("VerCFD","");
                if (oBand.DataGridView.Columns.Contains("VerAperak") == false) oBand.DataGridView.Columns.Add("VerAperak","");

                foreach (DataGridViewColumn oCol in oBand.DataGridView.Columns)
                {
                    switch (oCol.Name)
                    {
                        case "Serie":
                            oCol.HeaderCell.Value = "Series";
                            oCol.HeaderCell.ReadOnly = true;
                            oCol.Width = 60;
                            break;
                        //case "Folio":
                        //    oCol.Header.Caption = "Folio";
                        //    oCol.CellActivation = Activation.NoEdit;
                        //    oCol.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
                        //    oCol.Width = 70;
                        //    break;
                        //case "FechaFactura":
                        //    oCol.Header.Caption = "Factura Factura";
                        //    oCol.CellActivation = Activation.NoEdit;
                        //    oCol.Width = 100;
                        //    break;
                        //case "FechaRecibo":
                        //    oCol.Header.Caption = "Fecha de Recibo";
                        //    oCol.CellActivation = Activation.NoEdit;
                        //    oCol.Width = 100;
                        //    break;
                        //case "Status":
                        //    oCol.Header.Caption = "Status";
                        //    oCol.CellActivation = Activation.NoEdit;
                        //    oCol.Width = 80;
                        //    break;
                        //case "Resultado":
                        //    oCol.Header.Caption = "Resultado";
                        //    oCol.CellActivation = Activation.NoEdit;
                        //    oCol.Width = 150;
                        //    break;
                        //case "FolioAtencion":
                        //    oCol.Header.Caption = "Fol. Atn.";
                        //    oCol.CellActivation = Activation.NoEdit;
                        //    oCol.Width = 80;
                        //    break;
                        //case "VerCFD":
                        //    oCol.Header.Caption = "";
                        //    oCol.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Button;
                        //    oCol.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Center;
                        //    oCol.Width = 50;
                        //    break;
                        //case "VerAperak":
                        //    oCol.Header.Caption = "";
                        //    oCol.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Button;
                        //    oCol.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Center;
                        //    oCol.Width = 50;
                        //    break;
                        default:
                            oCol.Visible = true;
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

, но когда я запускаю приложение и ставлю точку останова в этом событии, программа не входит в это событие

это код, где следует вызывать событие макета, но он этого не делает

private void grdHDR_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {            
            try
            {
                string CadenaConexion = string.Empty;
                DataSet oDs = new DataSet();
                if (ValidaDatos())
                {
                    #region Consulta
                    CadenaConexion = ((System.Web.UI.WebControls.ListItem)(cboAmbiente.Items[cboAmbiente.SelectedIndex])).Value;
                    db = DatabaseFactory.CreateDatabase(CadenaConexion);

                    string Folio_Inicial = string.Empty;
                    string Folio_Final = string.Empty;
                    string RFC = string.Empty;
                    //string Desc_Emisor = string.Empty;
                    //Int32 Id_Num_Prov = 0;

                    Folio_Inicial = txtFolioIni.Text.Trim();
                    Folio_Final = txtFolioFin.Text.Trim();
                    if (e.RowIndex >= 0)
                    {
                        DataGridViewRow row = grdHDR.Rows[e.RowIndex];
                        grdDET.Text = row.Cells[0].Value.ToString();
                        //txt3_prov.Text = row.Cells[4].Value.ToString();
                        RFC = row.Cells["RFC"].Value.ToString();
                    }


                    //try
                    //{
                    //    Id_Num_Prov = Convert.ToInt32(txtEmisor.Text.Trim());
                    //}
                    //catch
                    //{
                    //    Desc_Emisor = txtEmisor.Text.Trim();
                    //}

                    try
                    {
                        sp = db.GetStoredProcCommand("eDocResumenEmisor_pUP");

                        db.AddInParameter(sp, "@pCveOperacion", DbType.String, "D");

                        if (false == string.IsNullOrEmpty(Folio_Inicial))
                            db.AddInParameter(sp, "@pFolio_Inicial", DbType.Int32, Folio_Inicial);

                        if (false == string.IsNullOrEmpty(Folio_Final))
                            db.AddInParameter(sp, "@pFolio_Final", DbType.Int32, Folio_Final);

                        db.AddInParameter(sp, "@pFec_Ini", DbType.DateTime, dtFechaInicial.Value);
                        db.AddInParameter(sp, "@pFec_Fin", DbType.DateTime, dtFechaFinal.Value);
                        db.AddInParameter(sp, "@pRFC", DbType.String, RFC);

                        //if (false == string.IsNullOrEmpty(Desc_Emisor))
                        //    db.AddInParameter(sp, "@pDesc_Emisor", DbType.String, Desc_Emisor);

                        //if (Id_Num_Prov != 0)
                        //    db.AddInParameter(sp, "@pId_Num_Prov", DbType.Int32, Id_Num_Prov);

                        //sp.CommandTimeout = 60000;
                        oDs = db.ExecuteDataSet(sp);

                        if (oDs.Tables.Count > 0)
                        {
                            //grdDET.DataSource = oDs;
                            grdDET.DataSource = oDs.Tables[0];
                            //grdHDR.DataBind();

                            lblDET.Text = "Se encontraron " + oDs.Tables[1].Rows[0][0].ToString() + " CFD's";
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }

                    #endregion

                    DesHabilita();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

, как это сделать, чтобы войти в событие макета? Я думал, что с событием макета правильно, но я не уверен.

также можете ли вы сказать мне, если способ, которым я сделал, чтобы добавить столбцы в другое представление данных, является правильным?

спасибо и приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...