在asp.net中的rpt_RowDataBound sub中检索datatable.column值
根据这篇文章中选择的答案,我有一个修改要处理 在rpt_RowDataBound子文件中,我需要使用数据库值(“statusupdate”),而不是使用FileInfo对象 代码隐藏:在asp.net中的rpt_RowDataBound sub中检索datatable.column值,asp.net,vb.net,visual-studio-2008,repeater,Asp.net,Vb.net,Visual Studio 2008,Repeater,根据这篇文章中选择的答案,我有一个修改要处理 在rpt_RowDataBound子文件中,我需要使用数据库值(“statusupdate”),而不是使用FileInfo对象 代码隐藏: Protected Sub rpt_RowDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
Protected Sub rpt_RowDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
If month <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Month OrElse year <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Year Then
month = TryCast(e.Item.DataItem, FileInfo).CreationTime.Month
year = TryCast(e.Item.DataItem, FileInfo).CreationTime.Year
e.Item.FindControl("headerTable").Visible = True
TryCast(e.Item.FindControl("headerTitle"), Label).Text = MonthName(TryCast(e.Item.DataItem, FileInfo).CreationTime.Month()) & " " & TryCast(e.Item.DataItem, FileInfo).CreationTime.Year()
Else
e.Item.FindControl("headerTable").Visible = False
End If
End If
End Sub
更新 实际上,再看一遍,我认为需要将
FileInfo
替换为DateTime
,再次假设数据库中的“statusupdate”是DateTime列。换言之:
Protected Sub rpt_RowDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
If month <> TryCast(e.Item.DataItem, DateTime).Month OrElse year <> TryCast(e.Item.DataItem, DateTime).Year Then
month = TryCast(e.Item.DataItem, DateTime).Month
year = TryCast(e.Item.DataItem, DateTime).Year
e.Item.FindControl("headerTable").Visible = True
TryCast(e.Item.FindControl("headerTitle"), Label).Text = MonthName(TryCast(e.Item.DataItem, DateTime).Month) & " " & TryCast(e.Item.DataItem, DateTime).Year
Else
e.Item.FindControl("headerTable").Visible = False
End If
End If
End Sub
Protected Sub rpt_RowDataBound(ByVal发送方作为对象,ByVal e作为RepeaterItemEventArgs)
如果e.Item.ItemType=ListItemType.Item或LSE e.Item.ItemType=ListItemType.AlternatingItem,则
如果月份TryCast(e.Item.DataItem,DateTime).month或lse year TryCast(e.Item.DataItem,DateTime).year则
月=TryCast(e.Item.DataItem,DateTime).month
年份=TryCast(e.Item.DataItem,DateTime)。年份
e、 Item.FindControl(“headerTable”).Visible=True
TryCast(e.Item.FindControl(“headerTitle”),Label.Text=MonthName(TryCast(e.Item.DataItem,DateTime).Month)&“&TryCast(e.Item.DataItem,DateTime).Year
其他的
e、 Item.FindControl(“headerTable”).Visible=False
如果结束
如果结束
端接头
您使用的示例是FileInfo
对象,而您使用的(看起来)是DateTime
对象。因此,您只需将FileInfo
替换为DateTime
试试以下方法:
Protected Sub rpt_RowDataBound(sender As Object, e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
If month <> DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Month OrElse year <> DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Year Then
month = DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Month
year = DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Year
e.Item.FindControl("headerTable").Visible = True
TryCast(e.Item.FindControl("headerTitle"), Label).Text = "Files for " & DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).ToShortDateString()
Else
e.Item.FindControl("headerTable").Visible = False
End If
End If
End Sub
受保护的子rpt\u行数据绑定(发送方作为对象,e作为RepeaterItemEventArgs)
如果e.Item.ItemType=ListItemType.Item或LSE e.Item.ItemType=ListItemType.AlternatingItem,则
如果month DateTime.Parse(TryCast(e.Item.DataItem,DataRowView)(“statusupdate”).ToString()).month或lse year DateTime.Parse(TryCast(e.Item.DataItem,DataRowView)(“statusupdate”).ToString()).year然后
month=DateTime.Parse(TryCast(例如Item.DataItem,DataRowView)(“statusupdate”).ToString()).month
year=DateTime.Parse(TryCast(例如Item.DataItem,DataRowView)(“statusupdate”).ToString()).year
e、 Item.FindControl(“headerTable”).Visible=True
TryCast(e.Item.FindControl(“headerTitle”),Label).Text=“Files for”&DateTime.Parse(TryCast(e.Item.DataItem,DataRowView)(“statusupdate”).ToString()).ToSortDateString()
其他的
e、 Item.FindControl(“headerTable”).Visible=False
如果结束
如果结束
端接头
您能更新您的问题并发布更多相关代码吗?datarow(“statusupdate”)在哪里?也就是说,你从哪里得到的?我在更新的代码中没有看到它。数据行(statusupdate)将在页面加载事件中检索。上面的代码是我目前所拥有的全部。@DotNetCookie-我更新了我的代码示例(我原来的答案不正确)。看一看,看这是否使您朝着正确的方向前进。这是一个错误:“TryCast”操作数必须是引用类型,但“Date”是值类型。
Dim dt As DataTable = New DataTable()
Dim da As SqlDataAdapter = New SqlDataAdapter(strSQL, myConnection)
da.Fill(dt)
rpt.DataSource = dt
rpt.DataBind()
Protected Sub rpt_RowDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
If month <> TryCast(e.Item.DataItem, DateTime).Month OrElse year <> TryCast(e.Item.DataItem, DateTime).Year Then
month = TryCast(e.Item.DataItem, DateTime).Month
year = TryCast(e.Item.DataItem, DateTime).Year
e.Item.FindControl("headerTable").Visible = True
TryCast(e.Item.FindControl("headerTitle"), Label).Text = MonthName(TryCast(e.Item.DataItem, DateTime).Month) & " " & TryCast(e.Item.DataItem, DateTime).Year
Else
e.Item.FindControl("headerTable").Visible = False
End If
End If
End Sub
Protected Sub rpt_RowDataBound(sender As Object, e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
If month <> DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Month OrElse year <> DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Year Then
month = DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Month
year = DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Year
e.Item.FindControl("headerTable").Visible = True
TryCast(e.Item.FindControl("headerTitle"), Label).Text = "Files for " & DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).ToShortDateString()
Else
e.Item.FindControl("headerTable").Visible = False
End If
End If
End Sub