【问题标题】:Javascript call to VB postback function causing unexpected call error对 VB 回发函数的 Javascript 调用导致意外调用错误
【发布时间】:2012-10-10 13:45:39
【问题描述】:

这是VB代码:

 Dim button As New Button
 Dim xpanel As New Panel
 button.Text = "Submit"
 button.ID = "button"
 button.Height = "40"
 button.Attributes.Add("Autopostback", "true")
 button.Attributes.Add("Onclick", "Submit_Click") <----commented
 button.Attributes.Add("RunAt", "server")
 Dim trigger As New AsyncPostBackTrigger()
 trigger.ControlID = "button"
 trigger.EventName = "Submit_Click"
 AddHandler button.Click, AddressOf Submit_Click
 xpanel.Controls.Add(button)
 Dim literalx As New Literal
 submitplaceholder.Controls.Add(literalx)
 submitplaceholder.Controls.Add(xpanel)

设置是:从更新面板内部,单击一个按钮,该按钮会在页面底部的隐藏按钮上触发 javascript(thatbutton.onclick 函数),然后依次在 ajaxtoolkit 上执行“单击”: ModalPopupExtender ,导致弹出一个模态窗口,该窗口在 page_load 上使用上面的按钮动态填充(以及其他信息,但这对此并不重要)。 到目前为止,还没有回帖。

现在我们已经点击了那个页面的按钮。我希望它回发并调用函数 Submit_Click。我不在乎该函数实际上被调用了什么,并且我知道 _Click 是保留的,但尽管如此:它会触发该函数,但总是会出错,这会导致不良行为。

有些事情不对劲,我这辈子都想不出其他可以尝试的方法。使用属性 O​​nClick 然后使其自动回发似乎不适用于动态填充控件。 有什么想法吗?

【问题讨论】:

  • 您在哪里执行该代码?我的意思是,在哪个页面事件中?加载?初始化?

标签: javascript asp.net ajax vb.net modalpopupextender


【解决方案1】:

button.Attributes 是 HTML 属性的集合,因此不会按您想要的方式工作。

试试这个:

button.UseSubmitBehavior = True
AddHandler button.Click, AddressOf  Submit_Click

而不是

button.Attributes.Add("Autopostback", "true")
button.Attributes.Add("Onclick", "Submit_Click") <----commented
button.Attributes.Add("RunAt", "server")

【讨论】:

  • USesubmitbehavior 做到了。我很感激!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 2018-05-16
  • 1970-01-01
  • 2018-01-17
  • 2018-09-12
  • 1970-01-01
相关资源
最近更新 更多