0

こんにちは、コントロール ページに textarea があります。jQuery を使用して、単純な HTML テキスト エディターに「変えました」(ユーザーがテキストを強調し、単純な順序付けられていないリストを作成できるようにします)。

ページが送信されると、テキストエリアにある値を取得してデータベースに処理しようとしています (テキストエリア内にある html マークアップを保持します) が、コントロールが見つからないため、内部にあるマークアップを取得できませんそれ。

したがって、ページは次のようなものです(作業中のサーバー上にあるため、これはメモリからのものです)。

<div id="zone">
   <textarea id="txtDescription" cols="20" rows="2"></textarea>
</div>

フォームが送信されると、実行中です

HtmlTextArea zArea = (HtmlTextArea)Page.FindControl("txtDescription");

エラーは発生しませんが、zArea の値は常に null です。

私がこれについて間違った方法で行っている可能性があるので、どんな助けも大歓迎です。

ありがとう、クレイグ

編集済み* * runat=server メソッドを適用すると、コード ビハインド ページの値を参照できますが、jQuery でコントロールを「見つける」のに苦労しています。マスター ページには、次のような jQuery コードが含まれています。

<script type="text/javascript">
    $(document).ready(function () {
        $('#ctl00_myJobZoneAddition_txtHTMLArea').jqte();
    });
</script>

このマスター ページには、control.ascx ページへの参照があります。

<myWeb:JobZoneAddition ID="myJobZoneAddition" runat="server"/>

このコントロールには、実際のテキスト領域が存在します。

<textarea id="txtHTMLArea" runat="server" cols="20" class="jobDescription" name="txtHTMLArea" rows="8"></textarea>

ctl00_myJobZoneAddition_txtHTMLArea に名前を付けずにこのテキストエリアにアクセスする方法についてのヘルプは大いに歓迎されます。

再度、感謝します

4

2 に答える 2

0

runat="server"属性を textarea コントロールに追加すると、コード ビハインドから次のようにコントロールにアクセスできるようになります。

string description = txtDescription.value;

編集:私の回答に対するコメントに基づいて、クライアント ID を使用する必要があるようです。コントロールにrunat="server"を追加すると、コード ビハインドに表示されます。ただし、クライアント側 (jQuery など) から同じ方法でそのコントロールにアクセスすることはできません。通常使用する ID 属性ではなく、コントロールのClientIDと呼ばれるものを使用する必要があります。次に例を示します。

$(document).ready(function () {
    $('#<%= txtDescription.ClientID %>').click(...)
});

アプリケーションを実行してソース コードを見ると、「txtDescription」が一意の値に置き換えられていることがわかります。この値はクライアント ID と呼ばれます。

于 2012-07-30T18:59:16.810 に答える
0

こんにちは、値が「サーバー」のプロパティ runat をコントロールに追加する必要があります

 <textarea id="txtDescription" cols="20" rows="2" runat="server"></textarea>
于 2012-07-30T18:54:37.463 に答える