在asp.net中获取.cs页面上的文本框值

时间:2011-05-05 10:56:55

标签: c# asp.net events

我想用C#在asp.net中开发一个应用程序。 在该应用程序中,有一个文本框和一个标签。 我想要以下功能:

当我按下文本框中的任意键时,我应该在.cs页面上得到这个值,即;代码背后。从.cs页面我想将此值添加到标签。

问题是asp文本框没有按键事件,如果我使用html文本框,那么我就不会在.cs页面上获得它的价值

我怎么能解决这个问题?

4 个答案:

答案 0 :(得分:0)

由于文本框上的按键是客户端事件,但您想执行服务器端处理,因此需要使用AJAX请求。

您可能会发现以下内容:

AJAX Toolit

Using Jquery to call asp.net page methods

答案 1 :(得分:0)

在asp.net中,TextBox将具有TextChanged事件,但您需要为该按钮启用回发功能,当您从TextBox中跳出时,事件将会激活。
对于您想要的任务,您可以使用javascript或添加按钮,当此按钮执行您想要的操作时。

答案 2 :(得分:0)

您可以为此创建一个JavaScript方法。

您的文本框:

<asp:TextBox ID="textBox" runat="server" onkeydown="onFilterTextChanged()">
        </asp:TextBox>

你的JavaScript,做一个TimeOut,不要每隔0,0001秒执行一次。

function onFilterTextChanged() {
        if (timeoutID)
            window.clearTimeout(timeoutID);
        timeoutID = window.setTimeout(updateFilterText, 600);
    }

将值发送到CodeBehind,text是您的TextBox-Text。

 function updateFilterText() {
        var text = document.getElementById("<%=textBox.ClientID %>").value;
        __doPostBack("<%=textBox.ClientID%>", "CommandArg" + text);
    }

您不需要像使用原生TextChanged-Event那样多的PostBacks,您可以简单地使用它,例如用于Auto-Extender-Plugins。将TextBox打包到UpdatePanel中,你就可以了!

除非您不需要返回服务器,在这种情况下只需在updateFilterText中设置labeltext。

答案 3 :(得分:0)

我不认为这在网络应用程序中是一个很好的方法。通过这种方式,你将以大量的回复结束。

但是,如果您仍想要此功能。 Texbox有TextChanges事件,如果你也将文本框的AutoPostBack属性更改为true,你会得到一些接近的东西,但你仍然需要移动一个光标。

但它仍然是一个明显的解决方案。为什么不直接使用触发点击事件的按钮?

替代解决方案是使用Ajax或javaScript,..