¿Cómo mostrar líneas de error desde una vista de cuadrícula?

Tengo estos códigos para cargar archivos csv. Además, he puesto un GridView para mostrar su contenido. Ahora, lo que quiero hacer es mostrar líneas de error de GridView, por ejemplo, si faltan palabras en una columna o fila en particular, me gustaría mostrar que esa línea en particular está vacía y que el usuario tiene que volver a cargar con esa línea en particular actualizada. El caso es que soy realmente nuevo en esto, ¡espero que alguien pueda ayudarme! No sé cómo recuperar las líneas de error y mostrarlas en el sitio web. Estos son mis códigos:

    protected void btnUpload_Click(object sender, EventArgs e)
    {
        string strFileNameOnServer = fileUpload.PostedFile.FileName;
        string fileExt =
        System.IO.Path.GetExtension(fileUpload.FileName);


        if (fileUpload.PostedFile != null && fileExt == ".csv")
        {

            try
            {

                //fileUpload.PostedFile.SaveAs(ConfigurationManager.AppSettings + appDataPath + "\\" + strFileNameOnServer);
                fileUpload.PostedFile.SaveAs(Server.MapPath("~/Uploaded"));
                //string appPath = HttpContext.Current.Request.ApplicationPath;
               // string physicalPath = HttpContext.Current.Request.MapPath("~/MajorProject");
                Label1.Text = "File name: " +
                       fileUpload.PostedFile.FileName + "<br>" +
                       fileUpload.PostedFile.ContentLength + " kb<br>" +
                       "Content type: " +
                       fileUpload.PostedFile.ContentType;
            }
            catch (Exception ex)
            {
                Label1.Text = "Error saving <b>" + strFileNameOnServer + "</b><br>.  " + ex.Message;
            }
            BtnImport1.Visible = true;
            Cancel.Visible = true;
            fileUpload.Visible = false;
            btnUpload.Visible = false;
        }
        else
        {

            Label1.Text = "Error - a file name must be specified/only csv files are allowed";
            return;

        }


        var data = File.ReadAllLines(Server.MapPath("~/Uploaded"))  
          .Select(line => line.Split(','))    
          .Select(columns => new {GuestName = columns[0], Guest_ID = columns[1], IC_Number = columns[2]}); 
        myGridView.DataSource = data; 
        myGridView.DataBind(); 

        }

¿Tengo que agregar nuevos elementos a mi archivo aspx? ¿Como una etiqueta para mostrar las líneas de error? El contenido del archivo csv tiene Nombre, Número Ic y también Casa. Si es así, ¿alguien puede mostrarme los códigos para hacer esto?

preguntado el 27 de agosto de 11 a las 15:08

El hecho de que esté cargando un archivo CSV no es relevante para su pregunta. Su pregunta es cómo indicar errores en una celda en un GridView. -

@John Saunders, ¡ay! Lo siento, formateé mal las preguntas, la cambiaré -

1 Respuestas

Puede comprobar si faltan valores en GridView.RowDataBound evento para el tuyo myGridview.

Ejemplo:

void myGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {

    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      // Check if any of the values of mygridview row cells are empty.
      if (e.Row.Cells[0].Text == "")
      {
           e.Row.Cells[0].Text = "ERROR: Guest name is empty!"
           e.Row.Cells[0].Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red");
      }
      if (e.Row.Cells[1].Text == "")
      {
           e.Row.Cells[1].Text = "ERROR: Guest Id is empty!"
           e.Row.Cells[1].Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red");
      }
      if (e.Row.Cells[2].Text == "")
      {
           e.Row.Cells[2].Text = "ERROR: Ic number is empty!"
           e.Row.Cells[2].Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red");
      }


    }

  }

No olvide declararlo dentro de las propiedades de la vista de cuadrícula:

<asp:GridView ID="myGridview" 
              runat="server" 
              OnRowDataBound="myGridView_RowDataBound">
</asp:GridView>

Respondido 28 ago 11, 14:08

¡Gracias! Lo intentaré cuando llegue a mi lugar de trabajo en tmrw, ¡muchas gracias! - Mark20

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.