ASP.NET UpdatePanel和按钮未执行全部和/或部分回发

问题描述 投票:0回答:1

我知道这是一个常见问题,但是我确定我的代码足够正确,并且对我不起作用。我有一个模式窗口,当它打开时,将显示一个UpdatePanel,其中包含多个Panel,其中一个是普通按钮。单击该按钮不提供任何回发(部分或全部)。理想情况下,我只想进行部分回发,但现在无法获得任何类型的回发。这是我的一些代码:

对于ScriptManager:

myScriptManager.ID = "ScriptManager1"
myScriptManager.EnablePageMethods = True    
myScriptManager.EnablePartialRendering = True
MainForm.Controls.Add(myScriptManager)

对于UpdatePanel:

With BeginBroadcastPanel
    .ID = "BeginBroadcastPanel"
    .Attributes.Add("style", "display:flex;flex-direction:column;justify-contents:center;align-items:center;")
    '.UpdateMode = UpdatePanelUpdateMode.Conditional
    '.ChildrenAsTriggers = True
End With

对于按钮:

With lblBroadcastPanelLoginButton   
    .ID = "lblBroadcastPanelLoginButton"
    .Text = "LOG IN"
    .Attributes.Add("style", "font-weight:bold;margin:20px;width:50%;text-align:center;cursor:pointer;font-size:20pt;background:lightgray;border-radius:4px;padding:10px 10px 10px 10px;border:0px solid darkgray;")
    '.Attributes.Add("onclick", "__doPostBack('<%=BeginBroadcastPanel.ClientID %>', null);")
    'Dim t As New AsyncPostBackTrigger
    't.ControlID = lblBroadcastPanelLoginButton.ClientID
    't.EventName = "Click"
    'BeginBroadcastPanel.Triggers.Add(t)
End With

您可以看到,我尝试了许多不同的解决方案,例如设置UpdateMode,ChildrenAsTriggers,添加AsyncPostBackTrigger。仅Java语言有效,但只能进行完整的回发(据我的理解,执行部分回发不需要使用Javascript)。为了检查是否发生了部分回发,我有一个显示当前日期时间的字段。有什么主意吗?

编辑:我发现发生了回发,但是显示日期时间的文本字段没有更新。如果我在标签中显示日期时间,则表明日期时间正在增加。奇怪的是,每次回发时,IsPostBack和IsInAsyncPostBack都评估为True。同样奇怪的是,如果我增加一个公共整数(请参见下面的示例),它只会在第一次回发时触发,而不会在随后的任何回发中触发。

Public test As Integer
Public dttm As DateTime = DateTime.Now

Dim b As New Button
With b
    test = test + 1 
    .Text = dttm.ToString("MM/dd/yyyy HH:mm:ss") & " - " & test.ToString & " - " & Page.IsPostBack
End With
BeginBroadcastPanel.ContentTemplateContainer.Controls.Add(b)

在上面的代码中,我在按钮上同时显示了dttm和test变量。 dttm递增,但测试变量不递增。为什么会这样?

javascript asp.net modal-dialog updatepanel partial-postback
1个回答
0
投票

发现问题:该按钮缺少Click处理程序。添加AddHandler之后,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.