Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试从ajax静态WebMethod获取asp.net(C#)文本框文本时出错_Javascript_Jquery_Asp.net_Ajax_Pagemethods - Fatal编程技术网

Javascript 尝试从ajax静态WebMethod获取asp.net(C#)文本框文本时出错

Javascript 尝试从ajax静态WebMethod获取asp.net(C#)文本框文本时出错,javascript,jquery,asp.net,ajax,pagemethods,Javascript,Jquery,Asp.net,Ajax,Pagemethods,我在asp.net web应用程序中使用ajax htmleditor,因此我尝试获取用户在编辑器中输入的文本,然后我将该文本发送回客户端javascript函数,该函数将在div中显示文本。但我收到此错误“对象引用未设置为对象的实例” 首先,我试图通过javascript访问与htmleditorextender链接的textbox文本,但它对我不起作用,所以我转向ajax webmethod,但这次我也面临一个问题。请帮帮我 [System.Web.Services.WebMetho

我在asp.net web应用程序中使用ajax htmleditor,因此我尝试获取用户在编辑器中输入的文本,然后我将该文本发送回客户端javascript函数,该函数将在div中显示文本。但我收到此错误“对象引用未设置为对象的实例”

首先,我试图通过javascript访问与htmleditorextender链接的textbox文本,但它对我不起作用,所以我转向ajax webmethod,但这次我也面临一个问题。请帮帮我

    [System.Web.Services.WebMethod]
    public static string seteditor()
    {
        String x="";
        try
        {
            Content c = new Content();
            x = c.txteditor.Text;
        }
        catch (Exception ex) { x=ex.Message; }
        return x;
    }

这里,txteditor是asp:textbox的ID,它与ajaxcontroltoolkit htmleditorextender链接。

您无法在
静态方法中获取
aspx
控件。 如果从jquery调用静态方法,则意味着页面及其控件甚至不存在。你需要为你的问题寻找另一个解决方法

编辑:

我总是将控件值传递给页面方法,如下所示:

Assume I have two text controls: txtGroupName and txtGroupLevel
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery-1.4.1.js") %>"></script>  
…我的Jquery JS将是:

var grpName = $("#<%=txtGroupName.ClientID%>").val();
var grpLevel = $("#<%= txtGroupLevel.ClientID %>").val();

data: "{'groupName':'" + grpName + "','groupLevel':'" +   grpLevel + "'}",
var grpName=$(“#”)val();
var grpLevel=$(“#”)val();
数据:“{'groupName':'”+grpName+“,'groupLevel':'“+grpLevel+”}”,
其中groupName和groupRights是我的webmethod参数

编辑2:

包括您的脚本,如下所示:

Assume I have two text controls: txtGroupName and txtGroupLevel
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery-1.4.1.js") %>"></script>  


我建议您使用最新的jquery版本。

Web方法不会像这样与页面对象或控件层次结构交互。这就是为什么它们首先是静态的。您需要将文本作为参数从客户端传递到web方法,没有从文本框中阅读。

这个问题在过去18个小时里一直折磨着我
首先,我尝试了javascript而不是webmethod,然后根据user1042031的建议,我尝试了jquery,然后再次尝试了javascript,看看用一行代码可以多么轻松地完成它

var a = document.getElementById('<%= txteditor.ClientID %>').value;
var a=document.getElementById(“”).value;
阅读这篇文章


我向所有回答我这个问题的人道歉,但我在最初的搜索中没有找到那篇文章。

您必须向WebMethod提供如下属性[System.Web.Services.WebMethod(BufferResponse=false)]@WaqarJanjua这并不能解决我的问题,我仍然会遇到这个错误。@nbrooks'Content'是我的asp.net代码,隐藏在页面的类名后面,这就是为什么我要创建该类的一个实例并尝试访问我的aspx页面上的文本框Simple将文本存储在字符串中,你为什么要把它分配给页面对象?@WaqarJanjua你不明白我的问题,我的aspx页面上有textbox,我想从webmethod中删除textbox的文本,但是webmethods总是静态的,我不能通过静态方法直接访问页面的元素,这会产生如下错误“非静态字段需要对象引用”。您确定,没有办法做到这一点吗?请告诉我其他方法。您能否告诉我为什么会出现此错误:“JavaScript运行时错误:“$”未定义“尽管如此,我还是将jquery包含在我的项目中,它再次引发了另一个错误,但不要担心我的问题已经解决,我将添加我的答案。非常感谢您的帮助。@user1306589:我可以看到您使用了javascript,这没问题,但正如建议您花一些时间练习jquery一样,它甚至比javascript更简单,非常有用。是的,这很有用,请告诉我如何使用javascript从asp:textbox(即多行)获取文本。通常我使用这段代码从简单的html文本框
var z=document.getElementById('txtarea').value获取文本
但在asp:textbox和ajax htmleditorextender的情况下不起作用,只能与asp:textbox链接。请帮忙。