0

ASP.Net から jQuery Modal Dialog 関数を呼び出しており、それにいくつかのパラメーターを渡しています。パラメータの 1 つに # 記号が含まれているため、jQuery モーダル ダイアログ呼び出しは実行されません。

この問題を解決する方法は何ですか? 文字列「#」をこの「\#」に置き換えて文字をエスケープしようとしましたが、それでもうまくいきません。

ありがとう。

頭のてっぺんからコード..

String var1 = "#3 and #4 should be on the list.";
lnkDetails.OnClientClick = "openDialog('" + var1 + "');

そして、通常の jQuery ダイアログ機能:

function openDialog(varPassed) {
            $("#divModal").dialog({
                width: 600,
            });

            $('#<%= label1.ClientID %>').text(varPassed);

更新:次の行のためにモーダルが表示されないようです:

$('#<%= label1.ClientID %>').text(varPassed);

モーダル ダイアログ自体の div 内にあるラベルに値が割り当てられている場合、モーダル ウィンドウは表示されません。

これがモーダルウィンドウです。

<div id="divMaterialDetails" title="Material Details" style="display:none" >
    <asp:Label ID="label1" runat="server" CssClass="formLabel"/>
</div>

値の割り当てをコメントアウトすると、モーダルが表示されます。

では、モーダルに渡された値をラベルに割り当てて、モーダルが表示されるようにするにはどうすればよいでしょうか?

4

1 に答える 1

1

記号はまったく問題ではありません。dialogメソッドはjQuery自体の一部ではありませんが、jQueryUIの一部です。互換性のあるバージョンのjQueryとして、jQuery UIライブラリも含めましたか?コメントアウト/$("#divModal").dialog通話を削除して、すべてが正常かどうかを確認します。この部分がある場合とない場合でこれをテストしましたが、この行では、エラーの原因となった行の後に行が実行されていませんでした。jQuery UIを含めると、機能し始めました。

一般に、コードのどこが間違っているのかわからない場合は、何かをコメントアウト/削除することで問題が解決する限り、問題を引き起こしていると思われる部分をコメントアウトしてみてください。考えられる「トラブルメーカー」を1つずつ排除することで、何が起こっているのかを簡単に見つけることができます。そしてもちろん、デバッガーを使用してください-Firefoxの場合、JavaScriptコンソールを使用したFirebug拡張機能は非常に便利です。問題の本当の原因につながる可能性のあるエラーメッセージを読むことができます。

ところで、ブラウザがクリックされたリンクをたどりたくない場合は、次のように追加return false;することを検討してください。OnClientClick

lnkDetails.OnClientClick = "openDialog('" + var1 + "');return false;";

詳細については、この質問を確認してください。

編集:

私のバージョンはオンラインで入手できます:

すべてがにDefault.aspxあり、Default.aspx.csファイル、コントロールはで作成されDefault.aspx.designer.csます。CodeRunを介してバージョンを投稿し、問題を引き起こす可能性のあるコンテキストやその他の要素を表示できます。

于 2013-02-08T01:12:32.743 に答える