【问题标题】:How can i get ASP.Net Grid Element using Javascript如何使用 Javascript 获取 ASP.Net 网格元素
【发布时间】:2011-05-25 09:26:15
【问题描述】:

我在 asp.net 中使用网格视图,我想在单击网格时获取元素,我该怎么做? 网格有列 id、名称、经线、纬线等,我想使用 Javascript 选择选定的单元格数据,请告诉我。

请帮忙...

问候 阿提夫

【问题讨论】:

  • 你想点击 grdiview 里面的按钮吗?
  • 是的,我希望如果您单击网格视图的任何行,它应该获取元素的集合。 ID、名称、经线、纬线

标签: c# asp.net visual-studio gridview


【解决方案1】:

要跟踪单击了哪个行按钮,您必须将row Index 作为参数设置为 JS 函数,例如...

 protected void grdForecast_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType ==DataControlRowType.DataRow )
    {
        ((Button)e.Row.FindControl("buttonId")).Attributes.Add("onclick", "javascript:update(" + (e.Row.RowIndex ) + ");");
    }
}

然后在 JavaScript 中:

<script language="javascript" type="text/javascript">
    function update(ri) {
        var grd = document.getElementById('<%= GridView1.ClientID %>');
        SecondCellValue = grd.rows[ri].cells[1].childNodes[0].value
        ThirdCellValue = grd.rows[ri].cells[2].childNodes[0].value
    }
</script>

【讨论】:

  • 我不想点击按钮,我希望整行都可以点击,可以吗?
  • 这个 js 不起作用,如果我们警告 secondcellvalue 或 thirdcellvalue 则返回 undefined
  • 能不能把childNodes[1].value放到试试?
  • 这是一个简单的解决方案 document.getElementById('ContractGrid').rows[ri].cells[1].innerHTML 我不知道你为什么要这么深入。
  • 接受你的回答,这是错误的,但它帮助我走向正确,谢谢。
【解决方案2】:

单元格内是否有可以引用的控件?如果没有,那么您可以创建一个隐藏控件。然后,您可以通过 ScriptManager 在 PreRender 事件处理程序中将控件的客户端 ID 写入客户端。然后您可以通过 id 获取该元素并在该父单元格中查找其他内容。

或者,您可以使用 jquery 来处理单元格点击事件...

$('#myTable td').click(function () {
  alert($(this).html());
});

【讨论】:

    猜你喜欢
    • 2018-12-21
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 2022-06-29
    • 2018-10-16
    • 1970-01-01
    相关资源
    最近更新 更多