【问题标题】:prevent the page to post back on button click while event will work阻止页面在按钮单击时回发,而事件将起作用
【发布时间】:2016-08-25 07:36:06
【问题描述】:

我在 VB.NET 中编写了一个代码,其中有大约 300 个 asp 控件,所有这些控件都是动态创建的,每个控件有超过 6 个条件(如If control = dropdownlist then some code Elseif control = radiobuttonlist then some other code)。
现在我想为一些控件编写事件,但由于回发,当触发事件时,所有控件都会被刷新。

当我为按钮设置button1.onclientclick="return false" 时,页面停止回发,但事件也停止工作。

我可以选择将控件的值保存在视图状态,然后重新创建控件,然后将值重新填充到动态控件中。这个选项会增加我的执行行数。

是否有任何其他方法可以阻止页面在 asp 控件事件上回发,以便我的 asp 控件保留其中输入的值,并且我的事件也将起作用。 this is the Code1 this is the Code2

【问题讨论】:

  • 你用VB.NET写的代码在哪里?
  • 您能否提供其中 1 个控件的示例,它是如何创建的以及条件?
  • 点击我问题末尾的链接
  • Sr28 请提出建议
  • 尝试将需要更新的控件封装在更新面板中。这样您就不会获得完整的回发,并且您的控件将持续存在。

标签: c# asp.net vb.net


【解决方案1】:

创建页面的动态控件 OnPreInit 事件,希望这能解决您的问题

override protected void OnPreInit(EventArgs e)
    {
        CreateDynamicControls();//Function which creates all dynamic controls

    }

【讨论】:

    【解决方案2】:

    我已经使用 JavaScript 和 Ajax 来实现我的要求。

    我已经为按钮的 onclick 和 Textbox 的 onchange 调用了 JS 函数(例如:btn1.Attribute.Add("onClick",JSFunction(); return false;) [return false 是为了防止回发]。 然后我使用 ajax post 方法在 .vb 页面上做我的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 2011-04-07
      • 2014-07-01
      • 1970-01-01
      • 2014-06-24
      • 2017-10-14
      相关资源
      最近更新 更多