我使用的是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-Width
和ControlStyle-Width
,如果要包装文本,请使用ItemStyle-Wrap
。
希望这能有所帮助。
Brisles的答案是正确的,但DataControlRowState可以将多个状态ORed在一起,因此您可能需要检查以下编辑状态:
(e.Row.RowState & DataControlRowState.Edit) != 0