如何将gridview中的复选框id从vb.net传递到javascript

How to pass checkbox id inside gridview from vb.net to javascript

本文关键字:net vb javascript id gridview 复选框      更新时间:2023-09-26

我有一个网格视图,其中有标题和项目模板上的复选框。现在我想把checkbox id从vb传递到javascript,如下所示。

  Protected Sub RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim headerchk As New CheckBox
        headerchk = DirectCast(gridview.HeaderRow.FindControl("chkheader"), CheckBox)
        Dim childchk As CheckBox = DirectCast(e.Row.FindControl("chkRow"), CheckBox)
        childchk.Attributes.Add("onclick", "javascript:Selectchildcheckboxes('" + headerchk.ClientID + "')")  'but this line gives me error
    End If
 End Sub

javascript函数将是,

function SelectheaderCheckboxes(headerchk) 
{
    if (headerchk.checked) 
    {
       //code
    }
}

我得到"对象引用未设置为对象实例"错误。

它非常简单。像一样的变化

childchk.Attributes.Add("onclick", "javascript:Selectchildcheckboxes(" + headerchk.ClientID + ")")  

因为您已将其作为字符串传递。但您必须将其作为id传递。

不要在服务器端添加属性,而是在设计时添加onclick事件,并在javascript中在顶部添加以下行。

这些线路用于头复选框、

    var gvcheck = document.getElementById('<%=gridview.clientid %>');
    var chks = gvcheck.rows[0].getElementsByTagName("input");
    header = chks[`index of your checkbox`].id;

的设计应该是这样的

<asp:TemplateField>
 <ItemTemplate>
    <asp:CheckBox ID="chkRow" onclick="javascript:Selectchildcheckboxes();" runat="server"/>
 </ItemTemplate>
</asp:TemplateField>