我创建了名为Attach_Template的Usercontrol,并在主页面中将其ID分配为"attachTemplate",如下所示:
<uc1:Attach_Template ID="attachTemplate" runat="server" />
在我的用户控件中,有一个ASPxGridview,ID="gv_Attach",ClinetInstanceName="grid"。我想写一个函数来从母版页回调这个ASPxGridView。
我已经尝试了以下代码。它似乎可以找到控件,但无法执行回调。
<script type="text/javascript">
function gvAttachPerformCallback() {
var gvAttach = document.getElementById('<%=Attach_Template.FindControl("gv_Attach").ClientID%>');
gvAttach.PerformCallback(null);
}
</script>
当我尝试执行回调时,出现以下错误消息。
错误:对象不支持属性或方法'PerformCallback'
您应该使用ClientInstanceName来访问客户端的控制。然后呼叫clientInstanceName.PerformCallback()
,或者在您的情况下呼叫grid.PerformCallback()
。
测试它,它将解决您的问题。
<script type="text/javascript">
function gvAttachPerformCallback() {
var gvAttach = ASPxClientControl.GetControlCollection().GetByName('attachTemplate');
gvAttach.PerformCallback();
}
必须使用ClientInstanceName来访问客户端编程对象。
看看如何在UserControl知识库文章中引用客户端控件。