提交按钮之前的asp.net textarea回发

时间:2011-08-17 02:26:39

标签: asp.net updatepanel form-submit autopostback

我有一个ASP.NET表单,底部有一些控件和一个提交按钮,都位于更新面板中:

<asp:UpdatePanel runat="server" ID="upContent">
    <ContentTemplate>
        <asp:TextBox runat="server" ID="tbxMyTextBox" AutoPostBack="true" />
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="return doStuff()" OnClick="btnSubmit_Click" />
    </ContentTemplate>
</asp:UpdatePanel>

如果我在TextBox中写入内容并立即单击“提交”(不先单击TextBox),则不会记录更改(如服务器端事件处理程序中所示)。但是,如果我在TextBox中写入内容,然后将焦点更改为另一个控件,则通过UpdatePanel发生AutoPostback,然后单击“提交”会识别这些更改。如何在单击提交按钮的同时强制更新此内容,同时仍然运行附加到它的clientside和serverside事件?谢谢!

2 个答案:

答案 0 :(得分:1)

由于某些on-submit / on-click事件处理程序,您的文本框是否可能被清除?我建议你使用一些工具,如Fiddler来检查请求中的POST数据。或者,您可以在服务器端代码中设置断点并检查请求数据。寻找特别Request.Form[tbxMyTextBox.UniqueID] - 即查找文本框名称的值(客户端的名称属性,对应于服务器端的UniqueID属性)。如果请求包含在文本框中键入的值,则服务器端会发生某些事情,但好消息是您始终可以从Request对象中检索值。如果Request对象中不存在该值,则表示客户端代码在提交之前清除该值。

答案 1 :(得分:0)

如果onclick方法返回false,则取消按钮通常执行的操作。由于您的按钮通常会提交您的表单,但似乎没有提交,因此doStuff中的客户端javascript代码可能会返回false。