根据内容长度在asp:BoundField中动态切换textarea和文本框

时间:2013-05-20 07:37:46

标签: asp.net gridview

如果根据文本内容的长度显示要编辑的文本,如何在网格视图的asp:BoundField中动态切换文本框和文本区域。

2 个答案:

答案 0 :(得分:1)

我们可以通过css样式来完成这个,

aspx页面:

<style type="text/css">
  #input
    {
        -moz-appearance: textfield;
        -webkit-appearance: textfield;
        background-color: white;
        background-color: -moz-field;
        border: 1px solid darkgray;
        font: -moz-field;
        font: -webkit-small-control;
        width: 250px;
    }
</style>
<body>
   <div>
    <asp:GridView ID="gv" AutoGenerateColumns="false" runat="server"> 
        <Columns>
            <asp:TemplateField HeaderText="Text">
                <ItemTemplate>
                    <div id="input" contenteditable></div>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</div>
</body>

aspx.cs页面:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindGrid();
        }
    }

    public void BindGrid()
    {
        List<string> lst = new List<string>();
        lst.Add("Name1");
        lst.Add("Name2");
        gv.DataSource = lst;
        gv.DataBind();
    }

否则onkeypress事件我们可以检查文本框字符串的长度,如果长度超过一行,那么我们可以更改css。希望这对你有所帮助。

答案 1 :(得分:0)

在gridview的数据绑定事件上,检查内容的长度,然后将asp:textbox的TextMode更改为textarea的multiline和textbox的singleine