ASP.NET自定义控件和"动态"事件模型

时间:2020-03-05 18:52:10  来源:igfitidea点击:

好的,我不确定标题是否完全正确,可以接受建议!

我正在创建一个ASP.NET自定义控件,这对我来说还是一个相对较新的事物,所以请耐心等待。

我正在考虑事件模型。由于我们不使用Web控件,因此不会从按钮触发任何事件,而是使用适当的参数手动调用__doPostBack。但是,这显然意味着在说选择选项时会发生很多回发(选择时呈现不同)。

随着时间的流逝,我将需要使它更具Ajax-y和响应能力,因此,我将需要更改事件绑定以调用本地Javascript。

因此,我认为我应该能够切换控件的"模式",它既可以使用postback和handlle本身,也可以指定要调用的Javascript函数名称,而不是doPostBack。

  • 我们对此有何想法?
  • 我是否以错误的方式来处理来自控件的事件? (在这里完全可以接受建议!)
  • 我们将如何解决类似的问题?

编辑-澄清

  • 我正在创建一个自定义的呈现控件(即从WebControl继承)。
  • 我们不使用existenig Web控件,因为我们希望对呈现的输出进行完全控制。
  • AFAIK使服务器端事件从自定义呈现控件中发生的唯一方法是从呈现的元素中调用doPostBack(如果错误,请正确!)。
  • 不能选择ASP.NET MVC。

解决方案

回答

很奇怪。我们正在使用ASP.NET服务器控件和自定义控件,但没有使用Web控件吗?我们是在手动调用__doPostBack吗?

我们喜欢用艰辛的方式做事吗?

如果我仍在使用服务器控件模型而不是MVC,我会在那个傻瓜上拍一下ASP.NET Ajax控件,并称之为一天。我们正在做的事情就像在型号T上放一个鼓风机。这可能很有趣,但是当我们完成所有艰苦的工作之后,我们真正拥有的是什么?

回答

我对此进行了更多的挖掘,并探讨了如何在需要时将Javascript注入客户端。显然,这将在使控件具有更高的响应速度和更少的服务器往返次数方面发挥巨大作用。

例如:RegisterClientScriptBlock。

期待与更多的人一起玩,随时获得参与的人!