2017-03-14 50 views

回答

0

簡短的回答是肯定的,通過分配

在ASPX頁動態生成純的HTML元素將被視爲LiteralControl元素,而不是WebControl元件,因此它們不直接影響ViewState像一些ASP .NET服務器控件。然而,由於他們放在裏面form標籤(通常runat="server"屬性),它們的值都貼在一起,通過提交表單,其中認定爲鍵值對在Request.Form採集觸發回發事件階段(關鍵是name屬性的認可的文字HTML元素)。

假設你已經動態生成的文本框,JS是這樣的:

<input name="FirstName" type="text" /> 

然後你就可以使用Request.Form檢索其值:

If Not String.IsNullOrEmpty(Request.Form("FirstName")) Then 
    Dim firstName As String = Request.Form("FirstName") 

而且,很重要的一點,你可以省略字符串上面的賦值和分配文本框值爲ViewState

ViewState("FirstName") = Request.Form("FirstName").ToString() 

請注意,只有HTML服務器控件(例如<input runat="server" />)和ASP .NET服務器控件具有控制名在直接訪問代碼隱藏和ViewState自動維護(除非具有EnableViewState屬性設置爲false)。

附加ViewState參考:

Understanding ASP.NET View State

相關的問題:

How to viewstate in normal HTML input in asp.net

Which controls have ViewState maintained?

viewstate for HTML control

+0

如果其中一個控件(asp:TextBox)被js禁用,並且表單在Postback上發送,會影響視圖狀態嗎? – chepe263

+0

在JS客戶端禁用控件當然不會影響服務器端部分,只要它具有名稱/ ID屬性,就可以使用Request.Form(用於HTML文字控件)或controlID.Value '(對於HTML和ASP.NET服務器控制)並可能影響'ViewState'。 –

相關問題