Как отобразить строки ошибок из вида сетки? - PullRequest
0 голосов
/ 27 августа 2011

У меня есть эти коды для загрузки файла CSV.Кроме того, я поставил GridView для отображения его содержимого.Теперь я хочу отобразить строки ошибок из GridView, например, если в определенном столбце или строке отсутствуют слова, я бы хотел отобразить, что эта строка пуста, и что пользователь должен повторно загрузитьс этой конкретной строкой обновляется.Дело в том, что я действительно новичок в этом, надеюсь, кто-нибудь сможет мне помочь!Я не знаю, как извлечь строки ошибок и отобразить их на веб-сайте.Вот мои коды:

    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(); 

        }

Нужно ли добавлять новые элементы в мой файл aspx?Как метка для отображения строк ошибок?Содержимое файла CSV имеет имя, номер Ic, а также дом.Если так, может кто-нибудь показать мне коды для этого?

1 Ответ

0 голосов
/ 28 августа 2011

Вы можете проверить наличие пропущенных значений в событии GridView.RowDataBound для вашего myGridview.

Пример:

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");
      }


    }

  }

Не забудьте объявить это в свойствах gridview:

<asp:GridView ID="myGridview" 
              runat="server" 
              OnRowDataBound="myGridView_RowDataBound">
</asp:GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...