如何修改 datagrid 编辑状态下的 textbox 的长度?
多谢!
用模板,然后修改TextBox的Width属性
用模板列,在textbox标签里,加入width属性,好象还有一个MaxLenth属性
在模版列里定义textbox的width
public void dgCart_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType li=e.Item.ItemType;
if(li==ListItemType.EditItem)
{
TextBox txtNum=(TextBox)e.Item.Cells[3].Controls[0];//第三列的文本框
txtNum.Width=Unit.Pixel(50); //在这里设置宽度
//如果你想设置全部的文本框,请用for语句。
}
}
这个问题讨论到现在最好方法还是用模板列来设置textbox的width.
if(e.Item.ItemType==ListItemType.EditItem)
{
TextBox txtNum=(TextBox)e.Item.Cells[3].Controls[0];
txtNum.Width=Unit.Pixel(100);
}
UP
up
Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated
Dim lit_footer As ListItemType = e.Item.ItemType
If lit_footer = ListItemType.EditItem Then
设置编辑的textbox
Dim txterrstyle As TextBox
Dim txterrname As TextBox
Dim txtmattercode As TextBox
Dim txtmattername As TextBox
Dim txtdealway As TextBox
-------------------------------------------------------------
txterrstyle = e.Item.Cells(0).Controls(0)
txterrstyle.Width = Unit.Pixel(90)
txterrstyle.TextMode = TextBoxMode.SingleLine
=============================================================
txterrname = e.Item.Cells(1).Controls(0)
txterrname.Width = Unit.Pixel(90)
txterrname.TextMode = TextBoxMode.SingleLine
==============================================================
txtmattercode = e.Item.Cells(2).Controls(0)
txtmattercode.Width = Unit.Pixel(90)
txtmattercode.TextMode = TextBoxMode.SingleLine
===============================================================
txtmattername = e.Item.Cells(3).Controls(0)
txtmattername.Width = Unit.Pixel(80)
txtmattername.TextMode = TextBoxMode.SingleLine
==================================================================
txtdealway = e.Item.Cells(4).Controls(0)
txtdealway.Width = Unit.Pixel(80)
txtdealway.TextMode = TextBoxMode.SingleLine
End If
End Sub
在ItemDataBound里定制TextBox的Width
DataGrid.Controls(0).Controls(n).Controls(m).Controls(k)
第一个controls可以获得所在的表,第二个Controls可以获得DataGridItem就是行,第三个Controls可以获得单元格DataGridCell,第四个Controls就是获得单元格里的控件了,接下来可以用GetType.Name进行判断