ASP.Net Gridview用于RowDataBound中的Next循环

时间:2014-01-14 15:37:11

标签: asp.net gridview asp.net-4.0 rowdatabound

我正在尝试做一些相当简单的事情,但由于某些原因出现了问题,我不能为我的生活看到原因。

我有一个数据网格,在RowDataBound上我想循环遍历另一个DataSet并在一个单元格中显示多个值。

所以下面我的基本代码是循环遍历gridview RowDataBound中的数据集,我在循环上设置i = 0然后我只是写出数据集中字段的值和i的值,问题是第一行在网格的每一行写入i = 1的值,因此它从不写出数据集中的第一行,有没有人知道为什么会出现这种情况或者之前遇到过这种情况?

变量i在其他任何地方都没有使用,所以不能从某个地方获取值。

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

提前致谢, 学家

1 个答案:

答案 0 :(得分:0)

不用担心,我失去了一些明显的东西!

当我循环时,我覆盖了标签lAgents中的先前值,因此它只显示最后添加的值!

所以我创建了一个字符串变量并将所有值连接到字符串,然后在循环之后将其应用于lAgents.text。

多么狡猾,但这可能会帮助别人像我一样愚蠢。