【问题标题】:Asp.net need Simultaneous display in Second Text BoxAsp.net 需要在第二个文本框中同时显示
【发布时间】:2010-08-13 22:59:50
【问题描述】:

我有两个文本框,我需要一个功能,例如如果我在第一个文本框中输入文本应该以其他字体显示在第二个文本框中。这是一个网络应用程序。所以文本框没有 OnKeyDown 事件?您有什么方法可以实现吗?

注意:我不想用 Javascript 来实现。

【问题讨论】:

  • 这是你会在 Javascript 中做的事情
  • 我不认为这是特定于 asp.net 或 c# 的,并且几乎可以肯定是许多其他问题的重复,尝试使用右上角的搜索框进行搜索,您可能会找到答案:-)
  • 如果我不想使用 JavaScript 怎么办??
  • @Chetan 您有脚本替代方案,但为了支持最广泛的浏览器,常见(也是最合乎逻辑的选择)将是 javascript。
  • 如果您绝对不想使用 Javascript,您可以将两个文本框包装在 AJAX UpdatePanel 中,并使用第一个 TextBox 的 TextChanged 事件来触发第二个 TextBox 的更新。从技术上讲,这仍然会导致创建 JavaScript 代码,但它是由 AJAX 控件工具包管理的,因此您无需接触任何内容。

标签: c# asp.net


【解决方案1】:

使用asp:UpdatePanel 的解决方案

使用这种方法,您无需自己编写一行 JavaScript;一切都由控件处理。

Page.aspx

<asp:ScriptManager runat="server"></asp:ScriptManager>
<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <asp:TextBox runat="server" ID="text1" OnTextChanged="text1_TextChanged"></asp:TextBox>
        <asp:TextBox runat="server" ID="text2" class="special"></asp:TextBox>
    </ContentTemplate>
</asp:UpdatePanel>

TextChanged 事件的事件处理程序,Page.aspx.cs

protected void text1_TextChanged(object sender, EventArgs e) {
    text2.Text = text1.Text;
}

使用 ASP.NET 和 jQuery 的解决方案

Page.aspx

<script type="text/javascript">
    //As soon as the DOM is ready, execute the anonymous function
    $(function () {
        var textBox1 = $("#<%= text1.ClientID %>");
        var textBox2 = $("#<%= text2.ClientID %>");
        textBox1.keyup(function () {
            textBox2.val(textBox1.val());
        });
    });
</script>

<asp:TextBox runat="server" ID="text1"></asp:TextBox>
<asp:TextBox runat="server" ID="text2" class="special"></asp:TextBox>

两种方法的 CSS:

 .special { font-family: YourFontFamilyOfChoice; }

测试结果

我已经使用 Firefox 3.6、Opera 10.6 和 Internet Explorer 8 在本地测试了这两种解决方案;两者都像魅力一样工作。

【讨论】:

    【解决方案2】:

    jQuery (JavaScript) 与 CSS 结合使用。此解决方案不会触发回发:您的用户将在键入时看到发生的事情。


    CSS:

    .normalFont { font-family: Arial; }
    .alternateFont { font-family: Verdana; }
    

    HTML:

    <input ... class="normalFont" />
    <input ... class="alternateFont" />
    

    JavaScript (jQuery):

    // When the DOM is ready, execute anonymous function
    $(function ()
    {
        // store a reference for the input with the "alternateFont" class
        var alternateFontInput = $("input.alternateFont")[0];
    
        // execute anonymous function on key-up event on the input with
        // the "normalFont" class
        $("input.normalFont").keyup(function ()
        {
            // set the value of the input with the "alternateFont" class to
            // the value of the input with the "normalFont" class (this)
            alternateFontInput.value = this.value;
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 2014-02-09
      • 1970-01-01
      相关资源
      最近更新 更多