Richard.Ma 发表于 2020-3-20 15:04:13

如何继承C1 ASP.NET WebForm控件。

C1 ASP.NET WebForm控件提供了创建 Web 应用程序的套包,它包含了 50 多款控件。每个控件都有其内置的属性、方法和事件用于定制控件行为。同时,也支持对控件进行继承并扩展。但是,有两个问题需要解决   1.继承 Wijmo 控件时遇到以下错误:“Microsoft JScript runtime error: Object doesn’t support property or method ‘objectName’.”    错误原因是 Wijmo 控件会根据控件类名向客户端注册 js 资源,资源名称为类名的小写形式,例如控件名称为MyCustomWijmo,在客户端 js 资源名称为:mycustomwijmo。解决方法是重写事件,加入以下代码this.Page.ClientScript.RegisterStartupScript(this.GetType(), this.ID + "_script", "<script>$.fn.mycustomwijmo = $.fn.c1treeview</script>");
2.另一个问题是,继承 Wijmo 控件后,在提交等触发Postback的操作时,输入型控件的值会消失,   错误的原因是Postback时,Wijmo控件会重新初始化,解决办法是继续在OnPreRender事件中加入如下的代码:this.Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), this.ID, "$('#" + this.ClientID + "').wijSaveState('c1inputdate');");
以下为继承一个C1InputText整理后的完整代码<blockquote><blockquote>    public partial class MyCustomWijmo : C1.Web.Wijmo.Controls.C1Input.C1InputText
详情请参考附件中的示例代码
页: [1]
查看完整版本: 如何继承C1 ASP.NET WebForm控件。