在外部JavaScript文件中查找用户控件的客户端Id
在我的asp.net应用程序中,在父页面(.aspx)下呈现多个用户控件(.ascx)。在每个用户控件中,我调用javascript函数和一些其他Infrastics客户端事件(只能接受某些参数)。这些函数写在外部javascript文件中,并包含在父页面中 问题是,当我在每个函数中使用$find(“”)来查找调用来自的用户控件时,它返回为null。我无法更改传递到某些JS方法中的参数,因为它们与只接受特定参数的Infragistics事件相关 有没有一种方法可以在不向JS方法引入输入参数的情况下从调用JavaScript方法的位置找到用户控件的客户端Id 我使用的一些JS方法:在外部JavaScript文件中查找用户控件的客户端Id,javascript,jquery,asp.net,user-controls,infragistics,Javascript,Jquery,Asp.net,User Controls,Infragistics,在我的asp.net应用程序中,在父页面(.aspx)下呈现多个用户控件(.ascx)。在每个用户控件中,我调用javascript函数和一些其他Infrastics客户端事件(只能接受某些参数)。这些函数写在外部javascript文件中,并包含在父页面中 问题是,当我在每个函数中使用$find(“”)来查找调用来自的用户控件时,它返回为null。我无法更改传递到某些JS方法中的参数,因为它们与只接受特定参数的Infragistics事件相关 有没有一种方法可以在不向JS方法引入输入参数的情况
function WebDataGridControl_AddRow() {
// Commit the row that was added to ROWADDING server event
$find("<%= Me.grdDataTable.ClientID%>")
.get_behaviors()
.get_editingCore()
.get_behaviors().get_rowAdding()._commitRow();
}
function WebDataGridControl_RowSelection_Changed(webDataGrid, evntArgs) {
// When row is changed, get the index of the row selected
var grid = $find("<%= Me.grdDataTable.ClientID%>");
var gridBehaviors = grid.get_behaviors();
var row = gridBehaviors.get_selection().get_selectedRows().getItem(0);
$('#<%=hdnEditRow.ClientID%>').val(row.get_index());
}
函数WebDataGridControl\u AddRow(){
//提交添加到ROWADDING服务器事件的行
$find(“”)
.get_行为()
.get_editingCore()
.get_behaviors().get_row adding()。_commitRow();
}
功能WebDataGridControl\u行选择\u已更改(webDataGrid,evntArgs){
//更改行时,获取所选行的索引
变量网格=$find(“”);
var gridBehaviors=grid.get_behaviors();
var row=gridBehaviors.get_selection().get_selectedRows().getItem(0);
$('#').val(row.get_index());
}
谢谢,
AV我不熟悉WebForms,但是如果不能向javascript函数添加参数,可以将DOM用作某种“全局变量”。呈现页面时,使用客户端id创建一个隐藏输入,例如:
,然后从JS代码中读取输入值:var gridId=$(“gridTableId”).val()代码>由于在同一父页面中呈现多个用户控件,并且如果每个用户控件都将客户端id设置为隐藏变量gridTableId,那么这将是一个问题,因为“$(“gridTableId”).val()”会看到多个具有相同#id的隐藏变量,并且可能会选择第一个。哦,因此,可以在同一页面中呈现不同的客户端ID。请记住,JavaScript并不严格,因此您可以在函数中创建一个新参数而不破坏基础设施,顺便问一下,这个函数在基础设施中是如何工作的??您可以做的一件事是依赖函数中的this
,它应该填充源DOM元素,如果您的函数是通过事件触发的,请查看此链接以获取更多信息: