2014-01-14 1 views
0

나는 무언가를 합리적으로 간단하게하려하지만 어떤 이유로 잘못된 것이고 그 이유는 볼 수 없다.ASP.Net Gridview RowDataBound 내에서 다음 루프에 대해

RowDataBound에 데이터 격자가 있습니다. 다른 DataSet을 반복하고 하나의 셀 내에 여러 값을 표시하려고합니다.

그래서 아래의 기본 코드는 GridView RowDataBound 내에서 데이터 집합을 반복하면서 루프에서 i = 0으로 설정 한 다음 데이터 집합의 필드 값과 i의 값을 쓰고 있습니다. 문제는 그리드의 모든 행에서 i = 1의 값으로 쓰여진 첫 번째 라인이므로 데이터 세트의 첫 번째 행을 쓰지 않는다.

변수 i는 다른 곳에서는 사용되지 않으므로 어딘가에서 값을 가져올 수 없습니다. 걱정하지 J.

답변

0

사전에

Protected Sub gvReport_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvReport.RowDataBound 


Dim cmdAgent As SqlCommand = New SqlCommand() 
cmdAgent.Connection = PgsSQL 
cmdAgent.CommandText = "spClientEstateAgent" 
cmdAgent.CommandType = CommandType.StoredProcedure 

Dim pCaseIdb As SqlParameter 

pCaseIdb = New SqlParameter() 
pCaseIdb.ParameterName = "@CaseId" 
pCaseIdb.SqlDbType = SqlDbType.Int 
pCaseIdb.Direction = ParameterDirection.Input 
pCaseIdb.Value = Trim(CaseId) 

cmdAgent.Parameters.Add(pCaseIdb) 

'data adapter 
Dim daAgent As SqlDataAdapter = New SqlDataAdapter 
daAgent.SelectCommand = cmdAgent 

'data set 
Dim dsAgent As DataSet = New DataSet() 
daAgent.Fill(dsAgent, "Agent") 

cmdAgent.Dispose() 
PgsSQL.Close() 

Dim AgentCount As Integer = dsAgent.Tables(0).Rows.Count 

     For i As Integer = 0 To AgentCount - 1 

      lAgents.Text = dsAgent.Tables("Agent").Rows(i).Item("Name") & " : " & i 

     Next 

End Sub 

덕분에, 그것은 나 뻔뻔스러운 뭔가가 있었다!

루핑 할 때 레이블 lAgents에서 이전 값을 덮어 쓰고 있었기 때문에 마지막으로 추가 된 값만 표시되었습니다!

그래서 문자열 변수를 만들고 문자열에 모든 값을 연결 한 다음 루프 다음에 lAgents.text에 적용했습니다.

무슨 plonker, 그러나 이것은 나처럼 어리 석다 다른 사람을 도울지도 모르다.

관련 문제