2011-12-27 13 views
0

モーダルポップアップにデータを表示したい。asp.netのEvalメソッドからJavaScript関数にデータを渡すことはできますか?

これは私が持っているもので、onclientclickを持っているリンクボタン付きのグリッドです:OnClientClick='showComfirm(this, <%# Eval("Message") %>); return false;'

は次にJavaScriptで、私はなっていた

function showConfirm(source, message){ 
    this._source = source; 
    document.getElementById('lblmessage').text=message; // not sure if this proper syntax though. 
    this._popup = $find('mdlPopup'); 
    this._popup.show();  
} 

UPDATE

javascriptのエラーが原因varialble "メッセージ" が含まれているテキストにしました。 varialbeには、大文字、小文字、感嘆符、カンマ、ピリオド、アポストロフィ、二重引用符、スペースなどの電子メールメッセージなどの平易な英語のテキストが含まれています。ありがとう、R.

+0

私は技術的にそれを行うことができると思います。機密情報をサーバーとクライアントの間でやりとりする場合は、あまり好きではないようです。 – mattacular

+0

私はスペースが足りないため、グリッドにはメッセージの日付、送信者、件名しか表示されません。件名リンクをクリックすると、モーダルに実際のメッセージが表示されます。 – Risho

+0

私は病気の形成されたタグのエラーを得ることを除いて。 – Risho

答えて

1

はい、それは引用符などをまっすぐにすることができます(実際に連結し、JavaScriptの文字列になるためには文字列の引用符を追加する必要があります) 。

問題をデバッグするには、コントロールをレンダリングしたときにブラウザのソースを表示し、指定された行で生成されたjavascriptが正しいことを確認してください。

例:

OnClientClick='showComfirm(this, "Are you sure you want to do this?"); return false;' 

およびNOT本:

OnClientClick='showComfirm(this, Are you sure you want to do this?); return false;' 

UPDATE

私は仕事にこれを取得することができた:

あなたはこれが欲しいです0123当然の

<asp:LinkButton ID="LinkButton1" runat="server" onclientclick='<%# "alert(\"" + Eval("Message") + "\");" %>' Text='<%# Eval("Message") %>'></asp:LinkButton> 

私はC#を使用しています、VBと同等は次のようになります。

<asp:LinkButton ID="LinkButton1" runat="server" onclientclick='<%# "alert(""" + Eval("Message") + """);" %>' Text='<%# Eval("Message") %>'></asp:LinkButton> 

これはまだ動作しない場合、IE & VSまたはFirefox &放火魔のいずれかを使用してJavaScriptをデバッグしてみてください。おそらく、エラーは関数であり、呼び出しではありません。

LinkBut​​tonコントロールは自動的にポストバックのためのHRefコードを作成するので、私の警告メッセージの直後に、私のテストに干渉しないポストバックが得られますが、あなたの実際の状況になる可能性があります。おそらく単純な< a>タグはLinkBut​​tonコントロールよりも優れています。

これを実行できない場合は、受信しているJavaScriptエラーで対応してください。

+0

ご協力いただきありがとうございますが、引き続きエラーが発生します。 OnClientClick = 'showComfirm(これは、 "テストメッセージ"); falseを返す; ' - これでもメッセージは表示されません。 document.getElementById( "ct100_ContentPlaceHolder1_lblMessage")を設定しました。innerHtml = message; 。 <%#Eval( "Message")%>をクォート、シングルまたはダブルまたはプラス(+)記号で囲まれた形で追加すると、javascriptの構文エラーが発生します。 – Risho

0

はい、そうです。あなたは、単一引用符を使用する場合、のみバインド式が内側できるように

OnClientClick='<%# "showComfirm(this, \"" + Eval("Message") + "\"); return false;" %>' 

は%だけでデータが表示されていない> <%#が、それは、フィールドにデータをバインドします。

+0

あなたの投稿のためのThaksしかし、これは "未定義の文字列定数"エラーを与えます。 (メッセージは有効なデータのバリエールです) – Risho

+0

これはJavaScriptエラーです。生成されたマークアップを表示します。メッセージの中に引用符などがあるかもしれません。 – aikixd

+0

ifはビューソースでレンダリングされる方法です:Elections Risho

関連する問題