2

我想向HiddenFieldASP.NET 控制器添加一个布尔值,以便在回发后保留该值。这是我的代码:

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.

4

2 回答 2

2

我认为您需要搜索列表视图控件。该控件没有设计器条目,仅在动态创建时存在。我可能是错的,因为我在我的手机上,无法检查。

编辑包含的代码,它将遵循这些原则。

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
于 2011-06-15T19:06:25.407 回答
0

HiddenField 值属性类型为字符串。您必须在 get 中将 IsAddingNewCauseField.Value 转换为 Boolean,并在 set 访问器中调用 value.ToString()。

于 2011-06-15T18:50:17.823 回答