在编辑期间调整datagrid中文本框的宽度并修复datagrid单元格宽度

时间:2012-03-24 12:24:14

标签: asp.net vb.net

我有一个数据网格,其中包含一个包含长字符串值的列。当我编辑它时,出现的文本框非常小。我想增加文本框的长度。

2 个答案:

答案 0 :(得分:0)

为什么不使用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 :(得分:-1)

试试这段代码它会对你有所帮助:

 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;
                        }
                    }
                }
            }
        }
    }