我有一個ListView,在Page_Load
期間以及當我從EditItemTemplate
到ItemTemplate
期間填充和顯示用戶數據(通過VWD 2008中的配置文件系統)。ListView控件第三次顯示錯誤的數據
當我再次進入編輯屏幕時,我的DropDownList和RadioButtonList控件顯示相應表中的第一項而不是正確的配置文件值。
我不明白爲什麼控件第一次和第二次正確填充,但不是在第三次(沒錯,第三次不是魅力)。
有人能幫助我理解如何解決這個問題嗎?
ItemTemplate:它
<asp:DropDownList ID="ddlTState" AppendDataBoundItems="True"
DataSourceID="srcState" DataTextField="StateName" DataValueField="StateName"
Enabled="False" TabIndex="125" runat="server" />
EditItemTemplate:它
<asp:DropDownList ID="ddlEState" AppendDataBoundItems="true"
DataSourceID="srcState" DataTextField="StateName"
DataValueField="StateName" TabIndex="125" runat="server">
<asp:ListItem Text="--State--" Value="" />
VB代碼後面
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
lsv = Util.FindChild(Me, "lsvProfile")
'If Not IsPostBack Then
ddl = Util.FindChild(lsv, "ddlEState") 'Util.FindChild = my version of FindControl
If ddl IsNot Nothing Then ddl.SelectedValue = Profile.State
ddl = Util.FindChild(lsv, "ddlTState")
If ddl IsNot Nothing Then ddl.SelectedValue = Profile.State
'End If
End Sub
謝謝Brian,即使你不拼寫你的名字。 (;>)不幸的是,你所建議的事件甚至沒有「注意到」這些控件(除了ListView控件,「lsvProfile」)。然而,它們是在Page_Load的第一輪中被選中的。我傾向於認爲這個問題與ListView的EditIndex有關,但我不知道如何或在哪裏操縱EditIndex來發現它。 – Bryan 2010-08-12 06:40:50
這些列表控件(DDL和RBL)正在成爲一大難題。首先,我被告知,.Net 3.5中的一個錯誤不允許我將它們綁定在聲明性代碼中,除非我想要錯誤;現在,當我嘗試遵循變通方法並從代碼隱藏中填充它們時,我無法做到這一點。這些錯誤是否已在4.0中修復? – Bryan 2010-08-12 06:57:04
您提到的錯誤我認爲實際上是綁定問題,因爲它會在應用數據源之前應用所選值;我以前得到過錯誤。要測試,請在RowDataBound中嘗試上面的代碼;我將編輯帖子。另外,請確保您正在使用該項目查找項目,但不能直接使用listview參考。 – 2010-08-12 12:34:27