簡體   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