【问题标题】:Bind javascript with GridView button dynamically使用 GridView 按钮动态绑定 javascript
【发布时间】:2011-12-14 16:01:14
【问题描述】:

过去一个小时我一直在尝试这样做,但仍然一无所获。我会尽力解释,所以请留在我身边:

我正在尝试通过使用 javascript 创建一个 HTML 表并在每次从 gridview 中选择一个项目时添加行来创建一种汇总购物车。

我有一个带有包含按钮的 TemplateField 的 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) 的值。

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    听起来你需要 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>');
     });
    

    【讨论】:

    • 谢谢伙计,我回来试试这个。顺便说一句,我快速搜索了一下,发现 live 已经停止了?
    • 谢谢,这行得通。但是如何将一些变量从 GridView 单元格传递到 javascript?例如,我想用 GridView 中某一行内的 Text 更改代码中的“第一个单元格”。
    • 对于您的第一条评论,您是对的,它被 .on() 取代,我还没有经验,但我不理解您的第二条评论/问题
    • 这个答案适用于使用 jquery 1.7 之前版本的人,如果使用 1.7+ 然后考虑使用 .on() 而不是 .live()
    【解决方案2】:

    您想在呈现网格视图后附加事件吗?你可以使用jQuery吗?

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

    上述解决方案可能会对您有所帮助。想法是在单击按钮时将网格和 rowindex 传递给 javascript 方法。在使用 rowindex 的 javascript 方法中,我们可以导航到所需的单元格并获取控件。我们可以使用 jquery 而不是 javascript然后在 addRow 中,这将简化代码。

    【讨论】:

    • 是的 jquery 也是一个选项。我不认为我可以在渲染后附加它,因为用户可以在gridview的(文本框)中输入值,所以我猜唯一的方法是在单击(按钮)后执行javascript。那是我似乎做不到的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多