2011-12-14 5 views
0

私は過去1時間にこれをやろうとしていて、まだ何も得ていません。私はそれを説明しようとしますので、私と一緒にお待ちください:動的にGridViewボタンでJavaScriptをバインドする

私はjavascriptを使用してHTMLテーブルを作成し、アイテムがgridviewから選択されるたびに行を追加することによって、一種の要約ショッピングカートを作成しようとしています。

私はボタンを含むTemplateFieldを持つgridviewを持っています。

Property | Quantity | Order | Action 
Pencil | 10 | (textbox) | (button) 
Pen | 5 | (textbox) | (button) 

たぶん、ボタンをHTMLテーブル(要約ショッピングカート)に新しい行を挿入しますonclientclickイベントがあります:GridViewのは、次のようになります。

<SCRIPT language="javascript"> 
     function addRow(tableID,property,order) { 

     var table = document.getElementById(tableID); 

     var rowCount = table.rows.length; 
     var row = table.insertRow(rowCount); 

     var cell1 = row.insertCell(0); 
     cell1.innerHTML = property; 

     var cell2 = row.insertCell(1); 
     cell2.innerHTML = order; 

    } 

このjavascriptを(GridViewの(ボタン)にバインドする方法はわかりませんが)私は(テキストボックス)の値を渡さなければならないので、DataBoundイベントでバインドできません。

答えて

2

これは、jquery liveが必要なように聞こえます。ボタンのフィールドにクラス名を追加し、グリッドのID名を 'grid1'とすると、これは次のようになります。

$('#<%=grid1.ClientID %> .buttonClassName').live('click', function(){ 
    var next = $(this).closest('tr');// this line should find the previous tr 

    next.after('<tr><td>first cell</td><td>Second Cell</td></tr>'); 
}); 
+0

ありがとう、私が戻ったときにこれを試してみるよ。ところで、私は迅速な検索を行い、ライブが中止されたことを知った? –

+0

ありがとう、これは動作します。しかし、どのように私はGridViewのセルからJavaScriptにいくつかの変数を渡すことができますか?たとえば、GridViewの特定の行の中のテキストを持つコード内の「最初のセル」を変更したいとします。 –

+0

あなたの最初のコメントについては、まだ私はまだ経験がない.on()に置き換えられていますが、私はあなたの2番目のコメント/質問を理解していません – Jake

0

グリッドビューがレンダリングされた後でイベントをアタッチしますか? jQueryを使用することは可能ですか?

http://forums.asp.net/t/1194696.aspx

上記の溶液がyou.Theのアイデアに役立つかもしれないがjavascriptの方法clicked.Inボタン我々は所望のセルにナビゲートと制御を得ることができますrowIndexプロパティを使用する際にjavascriptの方法にグリッドとrowIndexにを渡すことです。コードを単純化するaddRowの代わりにjqueryをjavascriptで使用することができます。

+0

はいjqueryもオプションです。ユーザーはグリッドビュー内の(テキストボックス)に値を入力できるので、レンダリング後にアタッチすることはできないと思うので、(ボタン)をクリックした後にJavaScriptを実行する唯一の方法だと思います。それは私がすることができないものです。 –

関連する問題