0
我有一个数据网格,其中包含一个包含长字符串值的列。当我编辑它时,出现的文本框很小。我想增加文本框的长度。在编辑和修复datagrid单元格宽度期间调整datagrid中文本框的宽度
我有一个数据网格,其中包含一个包含长字符串值的列。当我编辑它时,出现的文本框很小。我想增加文本框的长度。在编辑和修复datagrid单元格宽度期间调整datagrid中文本框的宽度
试试这个代码,它会帮助你:
private void AdjustDataGridTextBoxWidth(DataGrid GridName, string SubControlType, Unit Width, int RowsCount, TextBoxMode TBMode, FontUnit FontSize)
{
if (SubControlType == "TextBox")
{
for (int i = 0; i < GridName.Items.Count; i++)
{
for (int o = 1; o < GridName.Items[i].Cells.Count; o++)
{
for (int x = 0; x < GridName.Items[i].Cells[o].Controls.Count; x++)
{
if (GridName.Items[i].Cells[o].Controls[x].GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
TextBox GridTextBox = (TextBox)GridName.Items[i].Cells[o].Controls[x];
GridTextBox.Width = Width;
GridTextBox.Rows = RowsCount;
GridTextBox.TextMode = TBMode;
GridTextBox.Font.Size = FontSize;
}
}
}
}
}
}
为什么不使用TemplateColumn中?这允许您在编辑/查看/插入模式下自定义布局。
参见下面的示例:
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label ID="lbl1" runat="server" Text='<% Eval("MyValue") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEdit" runat="server" Text='<% Bind("MyValue") %>' Width="400px"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
-1你的代码的失败在Visual Studio 2010(VB.NET项目)进行编译。有23个错误。 – user774411 2012-03-24 16:04:46
你没有提到你的项目是在VB中。我已经给出了C#的代码。 – 2012-03-26 06:17:26