Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript方法访问usercontrol中的gridview控件_Javascript_Asp.net_Gridview_User Controls_Master Pages - Fatal编程技术网

如何从javascript方法访问usercontrol中的gridview控件

如何从javascript方法访问usercontrol中的gridview控件,javascript,asp.net,gridview,user-controls,master-pages,Javascript,Asp.net,Gridview,User Controls,Master Pages,我试图从javascript方法访问一个用户控件,并在该控件中找到gridview,以检查gridview上选中的数字to复选框。 但是当我试图从JS方法中的usercontrol获取gridviews ID时,它显示了一个错误:当前上下文中不存在这个名称。下面是我写的代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Test.Web.uc" MasterPageFil

我试图从javascript方法访问一个用户控件,并在该控件中找到gridview,以检查gridview上选中的数字to复选框。 但是当我试图从JS方法中的usercontrol获取gridviews ID时,它显示了一个错误:当前上下文中不存在这个名称。下面是我写的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Test.Web.uc"
MasterPageFile="~/SiteMain.Master" EnableEventValidation="false" %>

<%@ Register Src="~/UserControls/UC1.ascx" TagName="uctest" TagPrefix="uc" ID="gv_uc" %>

<script type="text/javascript">
function FindCheckBox()
{
   var checkBoxSelector = document.getElementById('<%=gv_uc.("gvgridname").ClientID%>');
}
</script>

函数FindCheckBox()
{
var checkBoxSelector=document.getElementById(“”);
}

gvgridname是usercontrol上的gridview。

在父页面上,您可以使用JavaScript函数从usercontrol接受
ClientID
变量

<script type="text/javascript">
    function FindCheckBox(ID) {
        var checkBoxSelector = document.getElementById(ID);
    }
</script>
更新

如果需要父控件中控件的ID,则需要在UC中使用FindControl

GridView gv = Parent.FindControl("GridView1") as GridView;
Label1.Text = gv.ClientID;

gv_uc.(“gvgridname”).ClientID
看起来是错误的,应该是
gv_uc.ClientID
FindCheckBox()
放在用户控件中,或者将
ClientID
作为变量发送到
FindCheckBox()
。这样,它将在一个页面上对多个控件起作用。@Andrei即使我尝试编写gv_uc,它也会说当前上下文中不存在该名称。@VDWWD因此usercontrol的客户端id应作为参数发送到FindCheckbox。?是的,这可能是最简单的:
函数FindCheckbox(id){var checkBoxSelector=document.getElementById(ID);}
感谢您的回复,但是我需要父页面上的gridview的ID而不是usercontrol上的ID,我需要检查usercontrol中存在的gridview中是否选中了复选框。更新了我的答案,您可以在父页面中找到gridview的ID。
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "sendGridID", "FindCheckBox('" + GridView1.ClientID + "')", true);
GridView gv = Parent.FindControl("GridView1") as GridView;
Label1.Text = gv.ClientID;