2011-06-15 62 views
2

我想將一個布爾值添加到一個HiddenField ASP.NET控制器,以便該值可以保留後回發。這裏是我的代碼:如何獲取和設置一個值從一個asp HiddenField

Public Property IsAddingNewCause() As Boolean 
    Get 
     Return IsAddingNewCauseField.value 
    End Get 
    Set(ByVal value As Boolean) 
     IsAddingNewCauseField.value = value   
     '^^^^^^^^^^^^^^^^^^^^^this is where I want to set the HiddenField's value! 
    End Set 
End Property 

ASP.NET標記

<asp:ListView ID="lstNewCause" runat="server" DataSource="..." > 
    <EditItemTemplate> 
       <tr> 
        <td> 
         <asp:HiddenField ID="IsAddingNewCauseField" runat="server" Value="" /> 

[...]

編輯

的問題是,該控件的ID不被發現: Error 311 Name 'IsAddingNewCauseField' is not declared.

+0

你有什麼問題? – Oded 2011-06-15 18:47:05

+0

所以你說在你的財產的制定者,隱藏的價值沒有被設置?你怎麼知道的? – TheGeekYouNeed 2011-06-15 18:47:21

+0

什麼是包含控件? – 2011-06-15 18:48:21

回答

2

我想你需要爲它查找listviews控件。控件不會獲得設計器條目,只有在動態創建時才存在。我可能錯了,因爲我在電話上,無法檢查。

編輯包含的代碼,它將沿着這些線。

Protected Sub lstNewCause_ItemUpdated(sender As Object, e As ListViewUpdatedEventArgs) 

    Dim l As ListView = DirectCast(sender, ListView) 

    Dim item As ListViewItem = lstNewCause.Items(l.SelectedIndex) 

    Dim IsAddingNewCauseField As HiddenField = DirectCast(item.FindControl("IsAddingNewCauseField"), HiddenField) 

    '...do your stuff 


End Sub 
+0

就是這樣!我將hiddenField從列表視圖中取出並運行。謝謝! – 2011-06-15 19:09:39

+0

啊對於簡短的帖子感到非常抱歉。 – 2011-06-15 19:19:07

+0

如果你有時間,請指定如何從ListView裏面找到'HiddenField'。 – 2011-06-15 19:26:38

0

HiddenField值屬性類型是String。您必須將IsAddingNewCauseField.Value轉換爲get訪問器中的get和call value.ToString()布爾值。