我想知道在asp.net中使用RegisterForEventValidation的方法
我的问题是这个。
如果我启用了事件验证,那么使用javascript更改控件,然后将信息发送回服务器会引发错误。
但是如果我禁用事件验证,则控件中存在/选择的数据在后面的代码中的事件处理程序中不可用。
那么,如何解决这些问题?
此外,是否有任何好文章能够详细解释问题和解决方案?尝试使用谷歌搜索。遇到过很多文章。但没有任何东西符合我的期望。
进步很小。
如果我执行以下操作,则事件验证错误消失,但是无法在按钮单击后面的代码中获取所选值(在下拉列表中选择“1”之后,因为现在我只注册了值)
我遇到运行时错误 - 当我尝试访问后面的代码中的下拉列表中的选定值时,无法将字符串转换为double(我相信首先没有传递任何值的原因)。
对这里可能出现的问题有所了解!?谢谢!
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
答案 0 :(得分:0)
你已经得到了它。 DropDownList.SelectedValue始终是System.String类型。
您必须在btnId_Click方法中将String转换为整数。
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