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
相关产品推荐
相关产品推荐

