0

テキスト コンテンツの長さに応じて編集用のテキストを表示するときに、グリッドビューの asp:BoundField でテキスト ボックスとテキスト領域を動的に切り替えるにはどうすればよいですか。

4

2 に答える 2

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 イベントでテキスト ボックスの文字列の長さを確認できます。長さが 1 行を超える場合は、CSS を変更できます。これがお役に立てば幸いです。

于 2013-05-20T09:35:55.480 に答える