在函数后面调用代码并传递参数

时间:2018-05-14 06:51:28

标签: asp.net vb.net

我有asp.net文本框,我通过__postback调用函数后面的代码,但我也想传递调用__postback函数的文本框的文本。 这是我的文本框。

SharedPreferences sp = getApplicationContext().getSharedPreferences("preferences_name", Context.MODE_PRIVATE);
int totalMessages = sp.getInt("total-messages", 0); //initialize to 0 if it doesn't exist
SharedPreferences.Editor editor = sp.edit();
editor.putInt("total-messages",++totalMessages);
editor.apply();

我的代码背后我想要输入带有id =“txtExtraRooms”的文本框文本

       <asp:TextBox Width="400px" ID="txtExtraRooms" MaxLength="3" 
        onkeypress="__doPostBack(this.name,'OnKeyPress');" runat="server" 
       Visible="false"></asp:TextBox>

2 个答案:

答案 0 :(得分:1)

在asp.net中,您可以在表单对象中检查两个主要字段 __EVENTTARGET:引发回发事件的控件

__ EVENTARGUMENT:通过的参数

并阅读它们,您可以使用:

 Dim eventArgument As String = IIf(Me.Request("__EVENTARGUMENT") = Nothing, 
 String.Empty, Me.Request("__EVENTARGUMENT"))

有关详细信息,请查看 https://forums.asp.net/t/1252181.aspx?Retreiving+Argument+from+_doPostBack+in+VB

答案 1 :(得分:1)

任何asp.net事件的委托都将第一个参数作为“发件人”,其中包含对引发事件的控件的引用。 对于文本框,您应该使用TextChanged事件而不是回发(这也需要状态管理)。

在文本框中添加AutoPostback = true并提供TextChanged =处理程序。页面回发将会发生,但处理将在提供的处理程序上进行。

此外,通过使用“按键”事件,它将针对键入的每个键(输入或删除)触发。相反,当用户完成提供输入并将焦点移动到另一个控件时,事件应该触发。