如何从<asp:BoundField DataField="DateStart"
访问数据。
我有一个IF
语句,我希望查看的数据是>
还是<
,而不是DataField
中的数据。
我曾经使用rows(0).findControl
,但那不再适用了。
If today > item.FindControl("btnSelect") And today < item.FindControl("btnSelect") Then
如果可能的话
答案 0 :(得分:1)
您不能FindControl
使用BoundField
,只能使用TemplateFields
。您需要使用单元格的Text
property:
Dim text = grid.Rows(index).Cells(index).Text ' the cell-index is the column-index '
您需要将其解析为DateTime
/ Date
:
Dim dateStart = Date.Parse(text)
If Date.Today > dateStart.Date ...
但如果您使用RowDataBound
,则可以访问原始DataItem
。但后来我需要了解更多信息,向您展示一个例子。
答案 1 :(得分:0)
在GridView的定义中,添加
<asp:GridView .... DataKeyNames="ItemID" ...>
您还需要使用OnRowDataBound,而不是OnDataBound
<asp:GridView .... DataKeyNames="ItemID" ... OnRowDataBound="GridView_RowDataBound">
然后在你的代码背后,像这样
protected void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
int ItemId = Int32.Parse(YourGridView.DataKeys[e.Row.RowIndex].Values[0].ToString());
}
}
如果要查找多个值,请将 DataKeyNames 设置为
DataKeyNames="ID,Name,COde,Value and so on"