问题描述
||
我想向“ 0” ASP.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.
解决方法
我认为您需要搜索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
, HiddenField值的属性类型为String。您必须在set访问器的get和call value.ToString()中将IsAddingNewCauseField.Value转换为Boolean。