好吧,我不确定标题是否完全准确,欢迎提出建议!

我正在创建 ASP.NET 自定义控件,这对我来说还是比较新的东西,所以请耐心等待。

我正在考虑事件模型。由于我们没有使用 Web 控件,因此没有从按钮触发任何事件,而是我手动调用 __doPostBack 并有适当的论据。然而,这显然意味着在选择选项(选择时呈现不同的效果)时会发生大量回发。

随着时间的推移,我需要使其更加支持 Ajax 和响应,因此我需要更改事件绑定以调用本地 Javascript。

所以,我想我应该能够切换控件的“模式”,它可以使用回发和处理本身,或者您可以指定要调用的 Javascript 函数名称而不是 doPostBack。

  • 您对此有何看法?
  • 我是否以错误的方式从控件中引发事件?(这里完全接受建议!)
  • 您将如何处理类似的问题?

编辑 - 澄清

  • 我正在创建一个自定义渲染控件(即继承自WebControl)。
  • 我们没有使用现有的 Web 控件,因为我们想要完全控制渲染的输出。
  • 据我所知,从自定义呈现控件中获取服务器端事件发生的唯一方法是从呈现元素中调用 doPostBack(如果错误,请更正!)。
  • ASP.NET MVC 不是一个选项。
有帮助吗?

解决方案 2

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

例如: 注册客户端脚本块.

期待更多地玩这个,请随意参与进来!

其他提示

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

你喜欢用困难的方式做事吗?

如果我仍然使用服务器控件模型而不是 MVC,我会用 ASP.NET Ajax 控件来解决这个问题,然后就到此为止了。你所做的就像在 T 型车上安装鼓风机。这可能很有趣,但当你完成所有的辛苦工作后,你真正拥有的是什么?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top