MultiLine TextBox未提交

时间:2011-08-10 15:10:29

标签: c# asp.net-ajax textbox updatepanel

我正在写一个asp.net页面,我在提交表单时遇到了一些麻烦。我所拥有的是一个多行文本框。当用户点击进入时,表单应该提交,但是它会插入一个新行(这通常是人们遇到的相反问题)。以下是相关的正文代码:

<div align="left">
        Name:

            <asp:TextBox ID="Name" runat="server"></asp:TextBox>

            <asp:Button ID="Clear" runat="server" onclick="Clear_Click" 
                Text="Clear Chat Log" UseSubmitBehavior="False" />

        </div>
        <br />
        <asp:UpdatePanel runat="server" UpdateMode="Conditional">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick"/>
                <asp:AsyncPostBackTrigger ControlID="Go" EventName="Click" />
            </Triggers>
            <ContentTemplate>
                <asp:TextBox id="Chat" runat="server" ReadOnly="true" TextMode="MultiLine" Width="400" Height="630" />
                <asp:Timer runat="server" Interval="500" OnTick="Timer_Tick" ID="UpdateTimer"/>
            </ContentTemplate>
        </asp:UpdatePanel>
        <asp:UpdatePanel runat="server" UpdateMode="Conditional">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Go" EventName="Click" />
            </Triggers>
            <ContentTemplate>
                <br/>
                <asp:TextBox id="Message" runat="server" Width="400" Wrap="true" Height="40px" 
                    TextMode="MultiLine" AutoCompleteType="Disabled" AutoPostBack="True"/>
                <asp:Button id="Go" runat="server" Text="Go" Width="40px" Height="40px" OnClick="goClicked" UseSubmitBehavior="true"/>
            </ContentTemplate>
        </asp:UpdatePanel>

我的猜测是问题是更新面板。基本上,如果用户点击“消息”文本框中的输入(这些都在列表的底部),则应该触发“开始”按钮

感谢您的帮助, 最大

3 个答案:

答案 0 :(得分:1)

您需要在多行文本框中捕获键Enter,然后提交表单;用Javascript。样本:

<input type="text" id="txtMultiline" onkeydown="if(event.keyCode == 13) document.getElementById('btnSubmit').click()"/>

答案 1 :(得分:0)

尝试按Ctrl + Enter。此外,Facebook消息页面具有类似的行为,但您可以选择模式:“快速回复”与按钮。

答案 2 :(得分:0)

添加另一个TextBox,如下所示:

<asp:TextBox ID="txtSubmitOnEnter" runat="server" Width="0" style="visibility:hidden;display:none;" />      

之后它应该可以工作。