请教:这个到底是datagrid的问题还是dropdownlist的问题?

mililiwell 2006-12-19 05:07:40
Dim sqlconnstr As String "server=local);uid=sa;pwd=sa;database=acfcos")
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn As SqlConnection = New SqlConnection(sqlconnstr)
Dim da As SqlDataAdapter = New SqlDataAdapter("select * FROM piaa where piaa.piaa13<>1", conn)
Dim dt As DataTable = New DataTable

conn.Open()
da.Fill(dt)
conn.Close()

mquery.DataSource = dt
mquery.DataTextField = "piaa02"
mquery.DataBind()
mquery.Items.Insert(0, New ListItem("日期", "日期"))
'试图生成droplist的第一项为指定名称,这句要放在.databind()附近

dt.Columns.Add("bgcolor", GetType(String)) ' 这个地方是我绑带过程中生成的列,用来做颜色控制用的
Dim i As Integer
For i = 0 To dt.Rows.Count - 1
Dim fcsj As Date = dt.Rows(i).Item("piaa24")
Dim fhsj As Date = dt.Rows(i).Item("piaa25")
If fcsj < Now And Now < fhsj Then
dt.Rows(i).Item("bgcolor") = "#FF0000"
Else
dt.Rows(i).Item("bgcolor") = "#0000FF"
End If
Next

C1WebGrid1.DataSource = dt
C1WebGrid1.DataBind()

Itlabel2.Text = System.DateTime.Now
End Sub
Private Sub C1WebGrid1_ItemDataBound(ByVal sender As Object, ByVal e As C1.Web.C1WebGrid.C1ItemEventArgs) Handles C1WebGrid1.ItemDataBound
If e.Item.ItemIndex = -1 Then
Exit Sub
End If
e.Item.Style.Add("color", CType(e.Item.DataItem, DataRowView).Item("bgcolor"))
End Sub
Sub mquery_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles mquery.SelectedIndexChanged
Dim dv As DataView
dv = cdatabind("select * FROM piaa where piaa13<>1", "")
C1WebGrid1.DataSource = dv
C1WebGrid1.DataBind()
End Sub
End Class

bgcolor 既不是表 test 的 DataColumn 也不是 DataRelation。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: bgcolor 既不是表 test 的 DataColumn 也不是 DataRelation。

源错误:


行 117: Exit Sub
行 118: End If
行 119: e.Item.Style.Add("color", CType(e.Item.DataItem, DataRowView).Item("bgcolor"))
行 120: End Sub
行 121: Sub mquery_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles mquery.SelectedIndexChanged


源文件: c:\inetpub\wwwroot\gxjg\ac\test1.aspx.vb 行: 119
...全文
184 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mililiwell 2006-12-28
  • 打赏
  • 举报
回复
欢迎大家踊跃发言!
qiangsheng 2006-12-23
  • 打赏
  • 举报
回复
哦,不好意思,没仔细看,你这个不是交替行。
mililiwell 2006-12-22
  • 打赏
  • 举报
回复
怎么设置,我要的是根据我给定的条件去改变颜色Dim i As Integer
For i = 0 To dt.Rows.Count - 1
Dim fcsj As Date = dt.Rows(i).Item("piaa24")
Dim fhsj As Date = dt.Rows(i).Item("piaa25")
If fcsj < Now And Now < fhsj Then
dt.Rows(i).Item("bgcolor") = "#FF0000"
Else
dt.Rows(i).Item("bgcolor") = "#0000FF"
End If
Next
这个是我改变颜色设定的条件,符合这个条件才变色的。
qiangsheng 2006-12-22
  • 打赏
  • 举报
回复
你要做交替颜色,直接在datagrid里面设置就行了。
mililiwell 2006-12-22
  • 打赏
  • 举报
回复
我试着把它放在isnotpostback当中出现错误,本人初学asp。net这个还是不大会用。
jackie615 2006-12-20
  • 打赏
  • 举报
回复
还有:

你page_load中的代码 那些得到dt、绑定grid的语句

要放在Isnotpostback中 避免刷新时被重新绑定
jackie615 2006-12-20
  • 打赏
  • 举报
回复
好乱

bgcolor为什么要放在DT里

把你的逻辑过程放在ItemDataBound里写一样了

mililiwell 2006-12-19
  • 打赏
  • 举报
回复
dt.Columns.Add("bgcolor", GetType(String)) ' 这个地方是我绑带过程中生成的列,用来做颜色控制用的
Dim i As Integer
For i = 0 To dt.Rows.Count - 1
Dim fcsj As Date = dt.Rows(i).Item("piaa24")
Dim fhsj As Date = dt.Rows(i).Item("piaa25")
If fcsj < Now And Now < fhsj Then
dt.Rows(i).Item("bgcolor") = "#FF0000"
Else
dt.Rows(i).Item("bgcolor") = "#0000FF"
End If
Next
这部分是我在帮定过程中生成的用来做颜色控制的列,浏览时能显示我要的数据但是点击查询的时候就出现了上面的问题了。本人初学asp。net不久望高手指点。

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧