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