我在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
答案 0 :(得分:0)
创建动态控件OnPreInit Page的事件,希望这可以解决您的问题
override protected void OnPreInit(EventArgs e)
{
CreateDynamicControls();//Function which creates all dynamic controls
}
答案 1 :(得分:0)
我使用JavaScript和Ajax来达到我的要求。
我为按钮的onclick和Textbox的onchange调用了JS函数(例如:btn1.Attribute.Add(" onClick",JSFunction(); return false;)[return]假是为了防止回发]。 然后我使用ajax post方法在.vb页面上做我的东西。