0

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

首先,我尝试通过 javascript 访问与 htmleditorextender 链接的文本框的文本,但它对我不起作用,所以我转向了 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 是与 ajaxcontroltoolkit htmleditorextender 链接的 asp:textbox 的 ID。

4

3 回答 3

1

您无法将aspx控件放入static方法中。如果您从 jquery 调用静态方法意味着页面及其控件甚至不存在。您需要为您的问题寻找另一种解决方法。

编辑:

我总是将我的控制值传递给这样的页面方法:

Assume I have two text controls: txtGroupName and txtGroupLevel

...我的 Jquery JS 将是:

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

data: "{'groupName':'" + grpName + "','groupLevel':'" +   grpLevel + "'}",

其中 groupName 和 groupRights 是我的 webmethod 参数。

编辑2:

像这样包含您的脚本:

<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery-1.4.1.js") %>"></script>  

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

于 2012-07-14T09:44:26.520 回答
0

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

于 2012-07-14T09:58:25.190 回答
0

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

var a = document.getElementById('<%= txteditor.ClientID %>').value;

阅读这篇stackoverflow文章Getting Textbox value in Javascript

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

于 2012-07-14T11:44:10.950 回答