おはようございます!UpdatePanelの「プレビューエリア」がリフレッシュされていません
私は、ユーザーがさまざまなラジオボタンを選択し、HTMLマークアップ(主にSCRIPTタグ)を生成し、ページ上でデータを表示することができます。 「プレビュー」領域もあり、サイト内のコードをコピー/ペーストする前に結果を見ることができます。フォームは、FormViewコントロールに存在し、そうようなのUpdatePanelでラップされる:
<script src="http://example.com/src/Constants.js"></script>
<script>
showIPAddress = 0;
DisplayServerStatus();
</script>
:このようなものに見えるかもしれない、それが正常にコピーコードテキストボックスにコードを生成
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FormView ID="FormView1" runat="server" DataSourceId="XmlDataSource1">
<ItemTemplate>
<div id="configArea">
<ul>
<li>
<%# XPath("Steps/Step1/ServerStatus") %><br />
<asp:RadioButton ID="RadioButton1" runat="server" GroupName="OneA" Checked="true" AutoPostBack="true" Text='<%# XPath("Steps/Step1/YesOption") %>' />
<asp:RadioButton ID="RadioButton2" runat="server" GroupName="OneA" AutoPostBack="true" Text='<%# XPath("Steps/Step1/NoOption") %>' />
</li>
<li>
<%# XPath("Steps/Step1/Uptime") %><br />
<asp:RadioButton ID="RadioButton3" runat="server" GroupName="OneB" Checked="true" AutoPostBack="true" Text='<%# XPath("Steps/Step1/YesOption") %>' />
<asp:RadioButton ID="RadioButton4" runat="server" GroupName="OneB" AutoPostBack="true" Text='<%# XPath("Steps/Step1/NoOption") %>' />
</li>
<li>
<%# XPath("Steps/Step1/IPAddress") %><br />
<asp:RadioButton ID="RadioButton5" runat="server" GroupName="OneC" Checked="true" AutoPostBack="true" Text='<%# XPath("Steps/Step1/YesOption") %>' />
<asp:RadioButton ID="RadioButton6" runat="server" GroupName="OneC" AutoPostBack="true" Text='<%# XPath("Steps/Step1/NoOption") %>' />
</li>
</ul>
</div>
<div id="copyCode">
<%# XPath("Steps/Step2/CopyPasteCode") %><br />
<asp:TextBox ID="Textbox1" runat="server" TextMode="MultiLine" Width="300" Height="300" />
</div>
<div id="previewArea">
<%# XPath("Steps/Step3/PreviewTitle") %><br />
<asp:Literal ID="Literal1" runat="server" />
</div>
</ItemTemplate>
</asp:FormView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" XPath="Root/Data" />
(TextBox1テキストボックス)同時に、 "プレビュー"領域のリテラルコントロール(Literal1)をコピーコードのTextBox(TextBox1)のテキストで更新します。プレビューは、UpdatePanelの中にいないときは完全に表示されますが、その時には動作しません(また、ページの更新を防ぐためにUpdatePanelを使用することをお勧めします)。私は、PreRenderイベント中に「プレビュー」エリアとコピーコードのテキストの更新を行います。
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
UpdateCodeSnippetAndPreviewArea();
}
それはUpdatePanelの中にいたときにプレビューが更新されない理由を任意のアイデア?
最後の文まで続きます。あなたは詳細を教えていただけますか? – Bullines
たとえば、JQueryを使用してサーバーから返されたコンテンツを再解析し、スクリプトがロード/実行されていることを確認できます。これは、独自のヘルパー機能をスクリプト化することなく、問題を解決する最も簡単な方法です。あなたのリテラルを、例えばid = 'test'というコンテナで囲みます。次に、サーバー側で: ScriptManager.RegisterStartUpScript(UpdatePanel1、UpdatePanel1.GetType()、 "mytest"、 "$( '#test').html($( '#test').html());"、真実); これは、コンテナのinnerHTMLの位置を特定し、それを再解析し、元の場所に戻します。 これが役立つことを願っています! – Rohland
これはjQueryなしでも可能ですか? – Bullines