Asp.net 数据集中的DataFormatString(按代码)
我从access数据库中选择了一组数据,其中一个字段是DateTime字段 我正在尝试在GridView中显示格式化的文件,但尝试时:Asp.net 数据集中的DataFormatString(按代码),asp.net,visual-studio,ms-access,Asp.net,Visual Studio,Ms Access,我从access数据库中选择了一组数据,其中一个字段是DateTime字段 我正在尝试在GridView中显示格式化的文件,但尝试时: dtlJob.DataSource = genericDataSet dtlJob.Fields(2).DataFormatString = "{0:d}" dtlJob.DataBind() 我在第2行发现这个错误 Error 2 'DataFormatString' is not a member of 'System.Web.UI.WebCont
dtlJob.DataSource = genericDataSet
dtlJob.Fields(2).DataFormatString = "{0:d}"
dtlJob.DataBind()
我在第2行发现这个错误
Error 2 'DataFormatString' is not a member of 'System.Web.UI.WebControls.DataControlField'.
如何格式化数据
编辑
这是我的详细资料我想炫耀一下
<asp:DetailsView ID="dtlJob" runat="server" Height="50px" Width="125px">
</asp:DetailsView>
它只有它的标签,因为我从数据库中通过代码获取每个数据。但是我想格式化数据
日期字段,该字段的显示方式如下:不再显示它有哪些数据
您必须创建如下代码所示的边界字段
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="false" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Age" HeaderText="Age" />
<asp:BoundField DataField="Birth" HeaderText="Birth" DataFormatString="{0:d}" />
</Fields>
</asp:DetailsView>
我希望这有帮助
Vicente字段属性是只读的,因此您只能在构造函数中修改它。 请注意,我还没有测试这个解决方案,这是我认为你必须做的 因此,您必须创建一个新类,该类继承自details view,并使用其自己的private\u Fields字段对Fields属性进行阴影处理:
Imports System.Web.UI.WebControls
Public Class CustomDetailsView
Inherits DetailsView
Private _fields As System.Web.UI.WebControls.DataControlFieldCollection
Public Shadows Property Fields As System.Web.UI.WebControls.DataControlFieldCollection
Get
Return _fields
End Get
Set(ByVal value As System.Web.UI.WebControls.DataControlFieldCollection)
_fields = value
End Set
End Property
End Class
然后您就有了下面的代码,创建CustomDetailsView对象,告诉它它的数据源是dataset,格式化第二列字段,并在绑定数据之前将所有这些信息提供给web表单上的DetaiView
Dim myDetailsView = New CustomDetailsView
myDetailsView.DataSource = genericDataSet
CType(myDetailsView.Fields(1), BoundField).DataFormatString = "{0:d}"
dtlJob = myDetailsView
dtlJob.DataBind()
BoundField的基本类型是DataControlField,因此您可以编写CType行。
我现在无法测试,请测试并发布反馈。如果它不起作用,它可能是答案的开始
问候语这里是另一个解决方案(尚未测试)。在这里,您仍然创建一个继承DetailsView的新类,并访问构造函数中的fields变量:
Imports Microsoft.VisualBasic
Imports System.Collections.Generic
Public Class _CustomDetailsView
Inherits DetailsView
Public Sub New(ByVal Columns As List(Of String))
For Each item As String In Columns
Dim bfield As New BoundField
If Not String.IsNullOrWhiteSpace(item) Then
bfield.DataFormatString = item
Else
bfield.DataFormatString = ""
End If
Me.Fields.Add(bfield)
Next
End Sub
End Class
然后,创建一个字符串列表,其中包含每个列所需的格式。然后通过在构造函数中传递此字符串列表来创建_CustomDetailsView。
接下来,将DtlJob分配给_CustomDetailsView对象,最后提供数据源并继续数据绑定:
Dim DataFieldStyles = New List(Of String)
' First column: Default style
' Second column: Date format
' Third : Currency Format
' Fourth : Default style
DataFieldStyles.AddRange(New String() {"", "{0:d}", "{0:c}", ""})
Dim My_DetailsView As _CustomDetailsView = New _CustomDetailsView(DataFieldStyles)
dtlJob = My_DetailsView
dtlJob.DataSource = genericDataSet
dtlJob.DataBind()
和我的另一个答案一样,我不能测试这个,所以试试看,请给出反馈
您好您可以从ASPX文件发布您的GridView定义吗?当然可以。。它只有它的标签,因为我从数据库中通过代码获取每个数据我这样做了,但字段重复每当数据字段值与数据集中的字段名匹配时,应该设置它的格式吗?