动态地使用GridView按钮绑定javascript

时间:2011-12-14 16:01:14

标签: c# javascript asp.net

过去一小时我一直试图这样做但仍然一无所获。我会试着解释一下,所以请和我在一起:

我正在尝试通过使用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)的值。

2 个答案:

答案 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中,这将简化代码。