我在客戶端上使用Javascript來更新呈現爲HTML文本框的ASP Textbox控件。使用Javascript更新客戶端上的TextBox並從服務器讀取值
當我試圖訪問服務器上的文本框控件中的值時,我並不感到驚訝,因爲無法通過TextBox服務器控件的普通Text屬性訪問文本框的更新值,因爲該值的狀態,我假設可能保存在ViewState中,服務器不知道客戶端腳本已經改變了它。
是獲得使用類似的更新值的最佳方式:
的Request.Form(TextBox.UniqueID)?
我懷疑是因爲文本框被填充到GridView控件的一行內,並且在執行DataBind時該行被添加到運行時,所以我得到的結果可能與TextBox在Design上的控件上繪製的結果不同時間。
我證實,放置到客戶端文本框中的值是通過這種訪問:
Request.Form(CType(Row.Cells.Item(4).FindControl("txtTotal"), TextBox).UniqueID)
,但不能訪問通過該:
CType(Row.Cells.Item(4).FindControl("txtTotal"), TextBox).Text
後者返回一個空字符串。
我認爲這兩行講述了整個故事。
當你認爲它們返回不同的結果時,有兩個屬性可以獲得文本框的值,甚至更醜陋,這似乎很難看。
有沒有更好的方法,還是這只是客戶端發展的所有榮耀?
當人們說現在的Web開發日期與客戶端(例如winform)應用程序一樣簡單時,ASP.NET就會跟蹤狀態,我總是感到驚訝。對我而言,網站開發總是更加複雜和昂貴,但我承認並不擅長web開發。
你確定你沒有在Page_Load中的東西是重置文本框的值的任何更新? – 2009-12-10 19:49:34
是的,我是。查看更新的帖子。 – ChadD 2009-12-10 21:22:00