调整网格视图编辑文本框大小



我使用的是VS2005 C#

我有一个GridView,并且我已经启用了行编辑。

然而,我有一些列会有更大的输入,比如Comments列,它会包含更多的单词。

有没有办法调整文本框的大小?

如果您想要控制宽度高度以及其他属性,您可以在GridView的RowDataBound事件中引用TextBox并设置其高度和宽度,以及将TextMode设置为MultiLine:

protected void RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Edit)
    {
        // Comments
        TextBox comments = (TextBox)e.Row.Cells[column_index].Controls[control_index];
        comments.TextMode = TextBoxMode.MultiLine;
        comments.Height = 100;
        comments.Width = 400;
    }
}

通过检查RowState或EditIndex确保您引用的是编辑行,并适当设置column_index和control_index。对于BoundFields,控件索引通常为0。

设置ItemStyle-WidthControlStyle-Width,如果要包装文本,请使用ItemStyle-Wrap

希望这能有所帮助。

Brisles的答案是正确的,但DataControlRowState可以将多个状态ORed在一起,因此您可能需要检查以下编辑状态:

(e.Row.RowState & DataControlRowState.Edit) != 0

最新更新