2014-10-03 2 views
-2

배열을 gridview의 데이터 소스에 할당하는 동안 각 행에 대한 정보를 가져올 수 없습니다. 마지막 행만 표시하고 반복합니다. 배열 내의 정보를 텍스트 파일배열을 gridview에 할당 asp.net

Sub BindGridview() 

    If Request.QueryString("show") <> "" Then 
     Dim readEmailList As StreamReader = New StreamReader("d:\netdrvs\prs\emaillist\" & Request.QueryString("show"), FileMode.Open) 

     While Not readEmailList.EndOfStream 

      Dim readData(3) As String 
      readData = Split(readEmailList.ReadLine(), vbTab) 
      Dim readData2(3) As String 
      readData2 = Split(readData(0), "_") 

    Dim dt As New System.Data.DataTable() 


    dt.Columns.Add("ccode", Type.GetType("System.String")) 
    dt.Columns.Add("email", Type.GetType("System.String")) 
    dt.Columns.Add("invnum", Type.GetType("System.String")) 
    dt.Columns.Add("regards", Type.GetType("System.String")) 

    dim i as integer = 0 

    For i = LBound(readData) to UBound(readData) 
     dt.Rows.Add() 
     'dt.Rows(dt.Rows.Count - 1)("ccode") = arrMultiD(i, 0) 
     dt.Rows(dt.Rows.Count - 1)("ccode") = readData2(1) 
     dt.Rows(dt.Rows.Count - 1)("email") = readData(1) 
     dt.Rows(dt.Rows.Count - 1)("invnum") = readData2(0) 
     dt.Rows(dt.Rows.Count - 1)("regards") = readData(2) 
    Next 

      gvarray.DataSource = dt 
      gvarray.DataBind() 

     End While 


     readEmailList.Close() 

     ProcessChk.Visible = True 
    End If 

End Sub 

답변

-1
If Request.QueryString("show") <> "" Then 
     Dim readEmailList As StreamReader = New StreamReader("d:\netdrvs\prs\emaillist\" & Request.QueryString("show"), FileMode.Open) 

    Dim dt As New System.Data.DataTable() 

    dt.Columns.Add("ccode", Type.GetType("System.String")) 
    dt.Columns.Add("email", Type.GetType("System.String")) 
    dt.Columns.Add("invnum", Type.GetType("System.String")) 
    dt.Columns.Add("regards", Type.GetType("System.String")) 


    While Not readEmailList.EndOfStream 

     Dim readData(3) As String 
     readData = Split(readEmailList.ReadLine(), vbTab) 
     Dim readData2(3) As String 
     readData2 = Split(readData(0), "_") 

     dt.Rows.Add() 
     dt.Rows(dt.Rows.Count - 1)("ccode") = readData2(1) 
     dt.Rows(dt.Rows.Count - 1)("email") = readData(1) 
     dt.Rows(dt.Rows.Count - 1)("invnum") = readData2(0) 
     dt.Rows(dt.Rows.Count - 1)("regards") = readData(2) 

    End While 


    gvarray.DataSource = dt 
    gvarray.DataBind() 

    readEmailList.Close() 

    ProcessFile.Visible = true 

    End If 
+0

당신은 내 예를 가져다가 자기 대답 솔루션을 만들기 위해 그것을 사용, 그 나쁜 맛이다. 나는 그 코멘트 아래에서 당신을 감사한다고 말 했었습니다 ... 저는 당신이 화를 내서 미안합니다. 그리고 저는 여전히 당신의 도움에 감사드립니다. 당신의 대답이 없다면, 아마 그것을 얻기 위해 잠시 걸렸을 것입니다. 그러나 괴롭히는 것은 좋지 않습니다. 나는이 질문이 어느 날 다른 누군가에게 도움이되기를 바랍니다. – OneFineDay

+0

나는 당신의 방법을 사용하여 시도하고가있는 gridview가 모든 데이터를 표시하지 않았다 작동하지 않았다 - – Sash

+0

당신이 코드를 가지고 그냥 자신의 솔루션을 조언 할 때 나는 당신을 말하고 더 bulling 없다 - 그 가난한 맛에가. 나는 너의 행동에 실망하고 화를 내지 않는다. – OneFineDay

0

당신이 잘못 각 While 반복,에 DataTable을하고 있습니다에서 오는

, 그래서 하나가 만들어지는 동안 위에 넣어. 그런 다음 데이터를 추출하십시오.

Dim dt As New DataTable 
dt.Columns.Add("ccode", Type.GetType("System.String")) 
dt.Columns.Add("email", Type.GetType("System.String")) 
dt.Columns.Add("invnum", Type.GetType("System.String")) 
dt.Columns.Add("regards", Type.GetType("System.String")) 
While Not readEmailList.EndOfStream 
    Dim itemsArray As New System.Collections.Generic.List(Of Object) 
    Dim readData(3) As String 
    readData = Split(readEmailList.ReadLine(), vbTab) 
    Dim readData2(3) As String 
    readData2 = Split(readData(0), "_") 
    itemsArray.Add(readData2(1)) 
    itemsArray.Add(readData(1)) 
    itemsArray.Add(readData2(0)) 
    itemsArray.Add(readData2(1)) 
    Dim row = dt.NewRow() 
    row.ItemArray() = itemsArray.ToArray() 
End While 
gvarray.DataSource = dt 
gvarray.DataBind() 
+0

하는 것은 그것의 나에게 itemsArray에 오류를주는. 컴파일러 오류 메시지 : BC32045 : 'iTextSharp.text.List'에는 형식 매개 변수가 없으므로 형식 인수를 사용할 수 없습니다. – Sash

+1

당신이 볼 수 있듯이'iTextSharp.Text.List'를 만들려고합니다. Generic>리스트를 사용하고 있습니다. – OneFineDay

+0

Ahh okay, 나는 그것을 본다 ... 나는 나의 코드를 편집했고, 내가 그것을 당신의 것으로 바꿨을 때, gridview는 사라진다. – Sash

관련 문제