2013-07-11 125 views
0

我正在使用listview來顯示數據庫中的數據。在編輯模式下,有一個保存按鈕來更新數據。我在保存按鈕旁邊放置了一個標籤,並希望它顯示更新狀態。保存按鈕引發一個ItemCommand事件,在這種情況下,我將label.text設置爲狀態。但標籤從不出現。有什麼辦法可以做到這一點?Vb.net Listview:在編輯模式下更改標籤文本

前端:

<EditItemTemplate> 
    <asp:LinkButton ID="LinkButton10" runat="server" CommandName="Save" CommandArgument='<%# Bind("FileId") %>'>Save</asp:LinkButton> 
    <asp:Label ID="Label1" runat="server" Text='' ></asp:Label> 

後端:

If e.CommandName.ToLower.Equals("save") Then 
    Dim lblStatus As Label = CType(listView1.EditItem.FindControl("Label1"), Label) 
    lblStatus.text= "Status" 
End if 

提前感謝!

+0

這個問題似乎涵蓋了同樣的問題,可能是這有助於[http://stackoverflow.com/questions/17273194/vb-net-datagrid-set-edititemtemplate-field -visible](http://stackoverflow.com/questions/17273194/vb-net-datagrid-set-edititemtemplate-field-visible) –

+0

我很想知道你是否可以解決這個問題,或者你是否還需要一些支持? –

+0

我給出的解決方案沒有幫助,而且您有更好的解決方案,請與社區分享,或者接受提供的答案。謝謝。 :) –

回答

0

問題可能是事件觸發的順序和您正在加載列表視圖

嘗試調試(逐行或oldfashion打印行;-))的代碼,你會注意到,首先命令事件是執行和比索姆列表視圖數據綁定的東西將發生。結帳頁面生命週期的簡短摘要here 我想如果你改變了你的問題應該解決的問題的順序。

我希望這可以幫助。

編輯

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
If (Not IsPostBack) Then 
    ' This code Just runs only on the initial load of the Page 
    ' here set datasource and do databinding 
End If 
+0

感謝您的回覆。我瀏覽了代碼,就像你說的,命令事件首先觸發,然後數據綁定第二。數據綁定事件將擦除Label1.text。如果我在數據綁定事件中設置了Label1.text,那麼如何根據Save事件的狀態將文本設置爲成功或失敗? –

+0

您將不得不加載列表視圖頁面加載或預加載或之前。像這樣,控制事件覆蓋默認值。事件的確切順序可以在我發佈的鏈接中找到。 –

+0

或只有數據綁定列表視圖如果它不'IsPostBack'看到我的編輯。 –