0

私はasp.net Webアプリケーションでajax htmleditorを使用しているので、ユーザーがエディターに入力したテキストを取得しようとしており、そのテキストをdivにテキストを表示するクライアントjavascript関数に送り返します。しかし、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。

最初に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内でコントロールを取得することはできません。staticjquery から静的メソッドを呼び出している場合は、ページとそのコントロールが存在しないことを意味します。問題の別の回避策を探す必要があります。

編集:

私は常に次のようにコントロール値をページ メソッドに渡します。

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 パラメータです。

EDIT2:

次のようにスクリプトを含めます。

<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時間連続して私を苦しめていました。
最初に、webmethodよりもjavascriptを試し、user1042031の提案よりもjqueryを試しました。さらに、javascriptを試して、1行のコードでどれだけ簡単に実行できるかを確認しました。

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

このstackoverflowの記事を読んでくださいJavascriptでテキストボックスの値を取得する

この質問に回答してくれたすべての人に申し訳ありませんが、最初の検索ではその記事が見つかりませんでした。

于 2012-07-14T11:44:10.950 に答える