【问题标题】:Call a program inside a .cs file from a javascript function for onkeypress function ASP.net从 onkeypress 函数 ASP.net 的 javascript 函数调用 .cs 文件中的程序
【发布时间】:2014-04-05 22:45:15
【问题描述】:

我正在尝试创建一个文本框,在按下某个键后更新其中的文本,因此我在页面类中创建了一个程序,该程序执行我想要的功能。该程序运行良好,我的问题是当 onkeypress 事件发生时如何在 javascript 函数中调用该程序:

//我的文本框:

<asp:TextBox ID="MyBox" onkeypress="AutoText(); return false;" runat="server" 
      Width="400px" ToolTip="Text?" CausesValidation="True" AutoPostBack="True">
</asp:TextBox>

//我的功能

function AutoText() 
{
    var i;
    i = Class1.BoxTextChanged(object sender, EventArgs e);
}

我知道该函数不起作用,这不是如何从 JavaScript 中的 c# 类调用程序,我只是问是否可以这样做。

请注意,我已尽可能多地对此进行了研究,也许我所做的搜索没有用,因为该主题的主题太多,或者我只是做错了:P

【问题讨论】:

    标签: c# javascript asp.net events onkeypress


    【解决方案1】:

    您正在混合客户端和服务器端。 ASP.NET 从服务器端执行,Javascript 从客户端执行。

    因此,在您的情况下,您不能直接从 Javascript 调用 ASP.NET 函数,因为服务器无法访问客户端文本框。

    您的解决方案是用 Javascript 编写此函数。可能是这样的:

    function boxTextChanged(text) {
        getElementById('textBoxToUpdate').value(text);
    }
    

    顺便说一句,我只是想补充一点,您可以使用 ajax 在 Javascript 中直接调用 ASP.NET,但服务器端永远无法直接更新 DOM在客户端。通常使用ajax从服务器获取数据。

    【讨论】:

    • 谢谢,这很有帮助,但是我的主要问题是将文本字符串从类中的 C# 程序导入到 js 函数中,我该怎么做?
    • @user3378869 明确地说,您希望当用户在文本框中输入一些文本时,它应该写在另一个文本框/div 或其他什么上?
    • 那部分无关紧要,但无论如何它应该替换同一个框中的文本,对我来说,问题再次是将类中的程序编辑的文本导入到 js 函数中以便执行内森所说的。 :)
    • @user3378869 如果是字符串,您可以使用var jsVariable = @yourASPVariableName 将值从 ASP.NET 传递给 Javascript
    • 真的吗?这正是我要使用的,非常感谢!
    【解决方案2】:

    您可以调用 web 方法 onkeypress envt 并将文本框的值传递给它将使用文本框值更新数据库。 这是由 javascript 完成的,因此您不需要回发整个页面,从而提高您的性能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2011-04-30
      相关资源
      最近更新 更多