我正在努力获得一个asp:RangeValidator以编程方式更改最小值和最大值。不幸的是,我看到一个控制台错误消息说明:
'未捕获的Sys.WebForms.PageRequestManagerServerErrorException:Sys.WebForms.PageRequestManagerServerErrorException:值'' &rvDateFrom'的最大值属性无法转换为类型'日期'。
我的代码如下所示。日历包含在ListView的EditItemTemplate中,该ViewView包含在UpdatePanel中。
<ewc:CalendarPopup ID="cpDateFrom" runat="server" SelectedDate='<%# Bind("DateFrom")%>' CssClass="date"></ewc:CalendarPopup>
<asp:RangeValidator ID="rvDateFrom" runat="server" ControlToValidate="cpDateFrom" Type="Date" ErrorMessage="Invalid"></asp:RangeValidator>
背后的代码如下:
Private Sub lvRangeValidatorTest_ItemEditing(sender As Object, e As ListViewEditEventArgs) Handles lvRangeValidator.ItemEditing
lvRangeValidator.EditIndex = e.NewEditIndex
DataBind()
Dim rvDateFrom As RangeValidator = CType(lvRangeValidatorTest.Items(e.NewEditIndex).FindControl("rvDateFrom"), RangeValidator
rvDateFrom.MinimumValue = "01/01/1900"
rvDateFrom.MaximumValue = "01/01/2020"
End Sub
找到RangeValidator,因为故意输入错误的名称会抛出一个对象错误的实例,但它似乎并没有实际更新RangeValidator。因此,将最小值和最大值留空。
思想?
非常感谢。
答案 0 :(得分:0)
经过一些研究并尝试使用ItemDataBound事件失败后,我成功使用了DataBound事件。
public Long test() {
List<Long> returnList = new ArrayList<Long>();
return returnList!=null&&!returnList.isEmpty()? returnList.get(0): 0;
}