繁体   English   中英

如何使用asp.net中的RegisterForEventValidation注册数据以进行验证

[英]How to register data for validation using RegisterForEventValidation in asp.net

我想知道在asp.net中使用RegisterForEventValidation的方法

我的问题是这个。

如果我启用事件验证,然后使用javascript更改控件,然后将信息发送回服务器,则会引发错误。

但是,如果禁用事件验证,则控件中存在/选择的数据在代码后面的事件处理程序中不可用。

那么,如何解决这些问题呢?

此外,是否有任何好文章能够详细解释这个问题和解决方案? 尝试使用谷歌搜索。 遇到过很多文章。 但没有任何符合我的期望。

进步很小。

如果我执行以下操作,则事件验证错误消失,但是无法在按钮单击后面的代码中获取所选值(在下拉列表中选择“1”之后,因为现在我只注册了该值)

我得到一个运行时错误 - 当我尝试访问后面的代码中的下拉列表中的选定值时,无法从字符串转换为双精度(我相信首先没有传递任何值的原因)。

关于这里可能出现什么问题的任何想法!? 谢谢!

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
    Page.ClientScript.RegisterForEventValidation(Me.ddldobddId.UniqueID, "1")
    MyBase.Render(writer)
End Sub

Protected Sub btnId_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnId.Click
    If CType(Me.ddldobddId.SelectedValue, Integer) = 0 -> Throws the error
End Sub

你已经得到了它。 DropDownList.SelectedValue始终是System.String类型。

您必须在btnId_Click方法中将String转换为Integer。

Protected Sub btnId_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnId.Click
 Dim convertedSelectedValue As Integer
 convertedSelectedValue = Convert.ToInt32( Me.ddldobddId.SelectedValue )
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM