我有一个更新面板,里面有一些文本框和一个按钮。当没有任何内容预加载到文本框中,并且我输入数据并单击按钮时,更新面板工作正常,但当数据预加载到加载的文本框中时,更新板不会更新我的数据,服务器也不会获取输入到文本框的数据。下面是一个示例代码。请帮忙。
<asp:UpdatePanel runat="server" id="UpdatePanel1" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox runat="server" Columns="30" MaxLength="50" ID="tbxPhone" onblur="PhoneBlur(this)"></asp:TextBox>
<asp:Button ID="findOrderBtn" runat="server" OnClientClick="test()" OnClick="btnSearch_Click" Text="Search..." />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="findOrderBtn" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
以下是代码背后的示例:
protected void btnSearch_Click(object sender, EventArgs e)
{
string phone = tbxPhone.Text;
}
因此,如果tbxPhone Textbox在page_load上最初是"555-555-5555",而我将其更改为"222-222-2222",然后单击搜索。。。按钮,返回的数据是"555-555-5555"而不是"222-222-2222"
以下是您尝试的示例:
1.在表单上添加脚本管理器
2.添加一个更新面板并以这种方式
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox runat="server" Text="222-222-222" ID="txtValue"></asp:TextBox>
<asp:Button ID="btnsubmit" runat="server" Text="Button" />
<asp:Label ID="lblValue" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
On button_Click事件:
Protected Sub btnsubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnsubmit.Click
lblValue.Text = txtValue.Text
End Sub
我有一个Page_Load,它调用一个函数将数据预加载到我的文本框中。当我点击搜索按钮更新我的面板时,我意识到它再次通过Page_Load,因此我在文本框中输入的数据被原始预加载的数据重写了。
添加了!IsPostBack到我的Page_Load并修复了我的问题。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Code Here
}
}