过去一小时我一直试图这样做但仍然一无所获。我会试着解释一下,所以请和我在一起:
我正在尝试通过使用javascript创建HTML表格并在每次从gridview中选择项目时添加行来创建一种摘要购物车。
我有一个包含按钮的TemplateField的gridview。 gridview看起来像这样:
Property | Quantity | Order | Action
Pencil | 10 | (textbox) | (button)
Pen | 5 | (textbox) | (button)
据说,该按钮有一个onclientclick事件,它将向HTML表格(摘要购物车)插入一个新行。
<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)的值。
答案 0 :(得分: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>');
});
答案 1 :(得分:0)
是否要在渲染gridview后附加事件?你有可能使用jQuery吗?
http://forums.asp.net/t/1194696.aspx
以上解决方案可能对您有所帮助。想法是在点击按钮时将网格和rowindex传递给javascript方法。在使用rowindex的javascript方法中,我们可以导航到所需的单元格并获取控件。我们可以使用jquery而不是javascript然后在addRow中,这将简化代码。