【问题标题】:asp.net control to expand textbox?asp.net 控件扩展文本框?
【发布时间】:2011-04-27 18:34:00
【问题描述】:

我不确定这个功能的正确名称。但是我在 asp.net gridview 中有一个单行文本框。当用户单击该文本框时,我希望弹出一个更大的多行文本框,以便他们可以查看全部内容并对其进行编辑。一旦焦点移动到另一个控件,这个展开的视图就会消失。

是否有允许这样做的控件?如果没有,我该如何实施?

编辑:我正在寻找与 TextBoxCalendar Extender 的工作方式类似的功能,但我想要一个弹出多行文本框而不是日历。

【问题讨论】:

    标签: asp.net user-controls textbox


    【解决方案1】:

    This blog post 有一个使用 jQuery 的弹性文本框。据作者介绍,

    ...当 TextBox 获得焦点时,它会展开到指定的高度和宽度,然后当它失去焦点时,它会收缩到更紧凑的大小。

    【讨论】:

    • 博客不再可用。
    【解决方案2】:

    如果您想在没有回发的情况下执行此操作(我会推荐),则需要考虑使用 javascript/jquery。

    下面的链接介绍了一个很好的方法:

    这是他们调用的函数:

       function expand(width,height)
        {
    
        document.getElementById("text_output").cols = width;
        document.getElementById("text_output").rows = height;
    
        }
    

    .net AJAX 工具包中也可能有一个控件可以执行此操作,但 javascript 路由可能会更简单。

    更新:

    如果您正在寻找弹出功能,那么我肯定会选择 jQuery 路线。通常,他们会让您指定一个您希望在某个事件上弹出的 div。下面的链接为您提供了一些您可以使用的模态弹出插件:

    【讨论】:

    • 恐怕我在这里看不到大图...这不会将所有页面内容推到文本框下吗?之后我怎么能把它放回原来的大小呢?
    • 抱歉,我错过了弹出窗口的要求。在这种情况下,我肯定会寻找 jQuery 解决方案。有关更多信息,请参阅我的更新。
    【解决方案3】:

    如果您谈论的是 asp.net 文本框,您可以像这样指定行数:

        <asp:TextBox id="tb6" rows="5" TextMode="multiline" runat="server" />
    

    更多信息请见this link

    【讨论】:

    • 不是我想要的。
    【解决方案4】:

    您可以只使用文本框控件,并添加一个 onclick 事件处理程序,将“rows”属性更改为大于 1 的值,因此是多行的。

    【讨论】:

    • 不是我想要的。
    • 另外,asp.net 文本框没有 onclick 事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    相关资源
    最近更新 更多