我在UpdatePanel中有一个Page.in页面按钮。当用户点击按钮时。 我需要为更新面板之外的文本框分配一个值。
如何实现这一目标?有什么建议吗?
答案 0 :(得分:2)
您还可以将TextBox放在“更新”面板中,将该按钮保留在更新面板之外,并设置一个触发器,使该按钮执行异步回发,如下所示:
<asp:Button ID="btnSubmit" runat="server />
<asp:UpdatePanel ID="upTextBox" runat="server">
<ContentTemplate>
<asp:TextBox ID="tbTitle" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSubmit" />
</Triggers>
</asp:UpdatePanel>
然后添加一个按钮事件,它将更改文本框的文本。
或者,如果您不想在更新面板中添加文本框,则可以注册启动脚本以将textBox的文本设置为:
ScriptManager.RegisterStartupScript(this, GetType(), "setTextBoxText", "<script type='text/javascript'>$('#"+tbTitle.ClientId+"').val('submit button has been clicked');</script>", false);
答案 1 :(得分:1)
将TextBox放在更新面板中,触发按钮,这是一个例子:
<asp:UpdatePanel ID="upd1" runat="server">
<ContentTemplate>
<asp:Button ID="Btn1" runat="server />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="upd2" runat="server">
<ContentTemplate>
<asp:TextBox ID="txtBox1" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Btn1" />
</Triggers>
</asp:UpdatePanel>
在Button Click上,您可以更改txtBox1的值并调用upd2.Update()
答案 2 :(得分:0)
IIRC您需要在其他控件上调用.Update()
(可能将它们放在第二个UpdatePanel
中并在上调用.Update()
)。 See MSDN举个例子。