Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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附加到ASCX客户端实例的原型_Javascript_Asp.net_Ascx_Prototype Programming - Fatal编程技术网

将JavaScript附加到ASCX客户端实例的原型

将JavaScript附加到ASCX客户端实例的原型,javascript,asp.net,ascx,prototype-programming,Javascript,Asp.net,Ascx,Prototype Programming,如何对ASCX控件进行编码,以便提供ID并从浏览器运行一些javascript,例如 $find('myASCXControlClientId') 返回的对象有一个类,它有一个原型,这个原型有我的自定义javascript方法,可以在控件的实例上调用它 例如,像RadTreeView这样的Telerik控件可以做到这一点 他们用Javascript获取的控件有一个原型,其中包含一些定义清晰的方法。 如何使用ASCX实现这一点?您上面显示的RadControl可能已实现为而不是UserCont

如何对ASCX控件进行编码,以便提供ID并从浏览器运行一些javascript,例如

$find('myASCXControlClientId')
返回的对象有一个类,它有一个原型,这个原型有我的自定义javascript方法,可以在控件的实例上调用它

例如,像RadTreeView这样的Telerik控件可以做到这一点

他们用Javascript获取的控件有一个原型,其中包含一些定义清晰的方法。
如何使用ASCX实现这一点?

您上面显示的RadControl可能已实现为而不是UserControl(具有额外的.ASCX文件)

您可能已经知道ScriptControl类完全按照您的要求执行,当您执行
$find(elementid)
时,它返回控件的实际javascript对象

我讨厌ScriptControl的问题是,您基本上必须通过编程方式构建控件的DOM元素,方法是在
Load
PreRender
期间向控件的
ChildControls
集合添加.NET对象,如
Table
Label

我看到的一个有效选项是创建一个包含属性和方法的ScriptControl,然后使用ascx UserControl将其包装:

脚本控件示例:

public class MyScriptControl : System.Web.UI.ScriptControl
{
    public string MyProperty { get; set; }

    protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors()
    {
        //your implementations
    }

    protected override IEnumerable<ScriptReference> GetScriptReferences()
    {
        //your implementations
    }
}
public partial class MyUserControl : System.Web.UI.UserControl
{        
    protected override void OnLoad(EventArgs e)
    {
        this.MyLabel.Text = this.MySpecialScriptControl.MyProperty;

        base.OnLoad(e);
    }
}
.ascx示例:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Example.ascx.cs" Inherits="Example" %>

<div>
    <asp:Label id="MyLabel" runat="server" />
    <my:MyScriptControl id="MySpecialScriptControl" runat="server" />
</div>
var myScriptControl = $find('MySpecialScriptControl');