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