2010-11-30 20 views
0

javascript関数にC#バインディング変数を渡したいと思います。ここに私のコードです:csharpバインディング変数をJavascript関数に渡す方法

<asp:LinkButton ID="lbID" runat="server" Text="<%#Text%>" OnClientClick="passAccessory('<%#Bind(variable)%>'); "></asp:LinkButton> 

しかし、それは常に "htmlfile:実装されていません"というエラーを生成します。

とコードがonclick="passAccessory('&lt;%#Bind(variable)%>');"

をintepretedされていませんが、誰もがそれを解決する方法を知っていますか?

ありがとうございました。

編集:それはlblTest.ClientID

<asp:Label ID="lblTest" runat="server" Text='<%#Bind("reference")%>' />

を使用しています。しかし、私はエラーを受け取った、私は

<asp:LinkButton ID="lbID" runat="server" Text="<%#Text%>" OnClientClick="passAccessory('<%# Eval("lblTest.ClientID") %>');"></asp:LinkButton> 

にコードを変更しました。これは、それが関連のコードです:HttpException. Databinding ... does not contain a property with the name lblTest 。私のコードに間違いはありませんか?

編集:これらの投稿は私に手がかりを与えました。

http://www.west-wind.com/Weblog/posts/5364.aspx

I am trying to learn how to bind an IEnumerable LINQ collection to a repeater

今私は私が一緒に時間のためのASP.NET Webフォームをしませんでしたが、私はそれがこのようにする必要があります信じて

<asp:LinkButton ID="lbTest" runat="server" Text='<%#Text%>' OnClientClick='<%#string.Format("passAccessory(\"{0}\");", Eval("Ref"))%>'></asp:LinkButton> 

答えて

2

を使用したいしている:

OnClientClick="<%# string.Format("passAccessory('{0}');", Container.DataItem("variable")) %>"

+0

それはエラー発生: 'CS0103:名「のバインド」は多分この作品、私は私の答えを更新しました現在context' –

+0

には存在しませんが。ウェブフォームを使用してから約1.5年前です。 – Gidon

+0

答えが正しい間、このタイプの構文は、GridView、Repeater、ListViewなどのデータバインドコントロール内にある場合に適用できます。 OPのようなコントロール内に彼のLinkBut​​tonを持っていないように見える、または彼は? :S –

5

あなたは双方向バインドではなく、Evalを望んでいます。

<asp:LinkButton ID="lbID" runat="server" Text="<%#Text%>" OnClientClick='passAccessory(\"<%# Eval("variable") %>\");'></asp:LinkButton> 
+0

ありがとう、 ' ');"> 'と" HttpException。Databinding "という別のエラーが発生しました。 .. donesにはlblTestという名前のプロパティが含まれていません " –

+0

これはかなり正確には何かを意味します:-)あなたがデータバインドしているものはlblTest.ClientIDを持たないものです。データソースは正確に何ですか? – einaros

+0

linqtoentitiesを使用してデータを取得し、gridviewにデータを入力します。 –

2

これは、コードビハインドからOnClientClickイベントを変更することで簡単に行うことができます。

lbID.OnClientClick = "passAccessory(' " + variable + "')"; 
+0

あなたは 'DataBound'イベントの中でそれをしなければなりません。さもなければ' lbID'にアクセスできません –

+0

どうして私はLinkBut​​tonにアクセスできませんか?私の知識によると、DataBoundイベントの内部にある必要はありません。 :)私がそれにアクセスすることを妨げる他の唯一の要件は、 "server"に設定されたrunat属性を持つformタグの中にlbIDを入れないことです。しかし、この場合、ページはコンパイルされません。 –

関連する問題