You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中通过__doPostBack调用后台函数并传递文本框值

解决ASP.NET文本框通过__doPostBack回发时获取输入内容的问题

你可以直接通过Request.Form集合获取文本框的实时输入值——因为触发__doPostBack时浏览器会发起标准表单提交,所有控件的当前值都会被包含在提交数据里。下面是调整后的后台代码:

Dim ctrlName As String = Request.Params(Page.postEventSourceID)
Dim args As String = Request.Params(Page.postEventArgumentID)

' 获取txtExtraRooms的输入内容
Dim extraRoomsText As String = Request.Form(txtExtraRooms.UniqueID)

If ((ctrlName = txtExtraRooms.UniqueID) _
    AndAlso (args = "OnKeyPress")) Then
    ' 这里可以直接使用extraRoomsText变量来处理输入内容
    TextBox2_OnKeyPress(ctrlName, args)
End If

为什么这个方法有效?

服务器端控件的UniqueID会对应表单提交时的name属性,Request.Form集合就是通过这个name来存储控件当前值的。只要触发了表单回发(哪怕是通过__doPostBack手动触发),文本框的实时输入内容都会被提交到后台,直接读取即可。

前端小提醒

你当前的onkeypress绑定逻辑是正常的,但要注意:如果用户按住按键不放,会触发多次连续回发。如果这不符合你的业务需求,可以考虑改用onblur事件,或者添加防抖逻辑限制回发频率。


内容的提问来源于stack exchange,提问作者raja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:29:09