2011-08-27 2 views
0

나는 csv 파일을 업로드 할 수있는 코드가 있습니다. 또한 GridView를 배치하여 내용을 표시했습니다. 이제는 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 번호 및 집이 있습니다. 그렇다면 누구나이 일을 할 수있는 코드를 보여줄 수 있습니까?

+0

CSV 파일을 업로드하는 사실이 질문에 관련이 없습니다. 귀하의 질문은 GridView에서 셀에 오류를 나타내는 방법입니다. –

+0

@ John Saunders, oh oh! 죄송합니다 내가 잘못 입력란을 포맷, 그것을 바꿀 것입니다 – Mark20

답변

0

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> 
+0

감사합니다! 나는 내가 tmrw에서 나의 직장에 갈 때 그것을 시도 할 것이다, 고마워한다! – Mark20

관련 문제