2017-03-29 76 views
0

現在、リテラルaspコントロールに渡す一連のhtmlコードがあります。ここに私のビューjqueryによって変更されたときにasp:Literalまたはdivの更新されたhtmlコンテンツを取得します。

Labelhighlight.Text = <strong>foo sample</strong>; 

私のコントロールは、私のクライアント側で、私は私がすべき私のサーバー側で、その後

<div id="highlightedtext" class="well"> 
    <string>foo <span id='test'>sample</span> </strong> 
</div> 

になりjqueryのを使用して文字列をラップし、その後

<div id="highlightedtext" class="well" runat="server"> 
    <asp:Literal ID="Labelhighlight" runat="server" Mode="PassThrough"> 
    </asp:Literal> 
    </asp:Label> 
</div> 

を使用しています ここにコードがあります:

protected void btnSave_Click(object sender, EventArgs e) 
{ 
    var test = RenderControl(Labelhighlight); 
} 

public string RenderControl(System.Web.UI.Control ctrl) 
{ 
    StringBuilder sb = new StringBuilder(); 
    StringWriter tw = new StringWriter(sb); 
    HtmlTextWriter hw = new HtmlTextWriter(tw); 

    ctrl.RenderControl(hw); 
    return sb.ToString(); 
} 

私は<strong>foo sample</strong>という以前のhtml文字列しか取得しません。 divのhtmlコンテンツを取得しようとしましたが、次のエラーが発生します。内容がリテラルでないため、内部コンテンツを取得できません

+0

ようこそスタックオーバーフロー。 HTMLに構文エラーがあるようです。 ASPコードとHTMLコードを確認してください。ブラウザのコンソールでJavaScriptエラーがないか確認してください。 – Twisty

+0

レスポンスありがとう、jqueryを使ってテキストの前後にスパンタグを挿入したコードがブラウザで動作しています。リテラルコントロールのコンテンツを更新するだけではありません。たぶん私はリテラル上のコードを保存するjqueryが必要かどうかはわかりません。 –

+0

jQueryで作業している場合、これはクライアントサイドの変更のみです。プログラムされていない限り、サーバーサイドにはポストされません。したがって、サーバーはリテラルコンテンツが変更されたことをどのように知っていますか?それはすでにそれを解析し、それをサーバーに送りました。 – Twisty

答えて

0

私は次のように依頼フォーム、コードを使用して、私のサーバ側でコンテンツを取得、その後にrunat =「server」を使用せずに隠されたdiv要素にコンテンツを保存する方法を見つけました:

<input type="hidden" id="div_content" name="div_content" /> 

その後、私のjqueryの上

function SaveToHidden() { 

        var content = document.getElementById("highlightedtext").innerHTML; 

        document.getElementById("div_content").value = content; 
       }; 
    </script> 
関連する問題