2011-12-14 66 views
0

我一直在嘗試在過去一小時內完成此任務,但仍然沒有任何功能。我會盡力解釋它,所以請留在我身邊:動態綁定javascript和GridView按鈕

我試圖創建一個總結購物車通過創建一個HTML表,使用javascript和添加行,每次從gridview中選擇一個項目。

我有一個GridView的TemplateField包含一個按鈕。在GridView看起來是這樣的:

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

據稱,該按鈕具有將插入一個新行HTML表(彙總購物車)的事件的OnClientClick。

<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事件上,因爲我必須傳遞(textbox)的值。

回答

2

這聽起來像你需要jquery live來做到這一點。在向按鈕字段添加類名稱後,假設'grid1'是網格的id名稱,這樣做的方式是:

$('#<%=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

謝謝隊友,我回去的時候會試試這個。順便說一句,我做了一個快速搜索,發現現場停止? – 2011-12-19 03:56:20

0

你想在gridview渲染後附加事件嗎?是否有可能使用jQuery?

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

上述解決方案可以幫助you.The想法是使用的rowIndex當按鈕clicked.In JavaScript方法,我們可以導航到所需的細胞,並得到了控制,電網和rowIndex位置傳遞給JavaScript方法。我們可以在addRow中使用jQuery代替JavaScript,這將簡化代碼。

+0

是的jQuery也是一個選項。我不認爲我可以在渲染後附加它,因爲用戶可以在gridview中的(文本框)中輸入值,所以我猜想唯一的方法是在單擊(按鈕)後執行javascript。這是我似乎無法做到的。 – 2011-12-14 16:25:01