【发布时间】:2011-12-30 06:22:13
【问题描述】:
我创建了一个 ASP.NET 用户控件。当我明确提供自定义属性的值时,该值将传递给控件。但是,当我尝试使用数据源中的值时,该值不会传递给控件。
用户控件位于 FormView 中。 FormView 成功显示基础记录。我正在尝试将 FormView 数据源中的列中的值传递给控件。这行得通
<asp:formview .... />
<editTemplate>
<uctrl:DateSelector ID="DateSelector1" runat="server" DateValue="5/30/2011" /><br />
<%#Eval("MilestoneDate")%>
</editTemplate>
</asp:formview>
这不是……
<asp:formview .... />
<editTemplate>
<uctrl:DateSelector ID="DateSelector1" runat="server" DateValue='<%#Eval("MilestoneDate")%>' /><br />
<%#Eval("MilestoneDate")%>
</editTemplate>
</asp:formview>
我已经确认 MileStoneDate 确实有一个值。无论出于何种原因,该值都没有传递给控件,但是该控件确实可以识别文字值。
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.UI
Imports System.ComponentModel
Partial Class content_WebUserControl
Inherits System.Web.UI.UserControl
<Bindable(True, BindingDirection.OneWay)>
Public Property DateValue() As String
Get
Return _DateValue
End Get
Set(ByVal value As String)
_DateValue = value
End Set
End Property
Private _DateValue As String
Protected Sub Page_Load() Handles Me.Load
If IsDate(Me.DateValue) Then
Dim NewDate As DateTime = CDate(Me.DateValue)
LabelSelectedDateDisplay.Text = Me.DateValue
LabelSelectedDateDisplay_DayOfWeek.Text = NewDate.ToString("dddd")
TextBoxSelectedDate.Text = Me.DateValue
Else
LabelSelectedDateDisplay.Text = ""
LabelSelectedDateDisplay_DayOfWeek.Text = ""
TextBoxSelectedDate.Text = ""
End If
End Sub
End Class
我在此 URL ASP.NET User Control : can't initialize a user control property using Eval("...") 上被提及该帖子
但是,根据我对帖子的理解,我所拥有的应该可以工作。
【问题讨论】: