<DataGrid ...>
...
<Columns>
<asp:BoundColumn DataField="postid" HeaderText="序号">
<HeaderStyle Width="60px"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="name" HeaderText="姓名">
<HeaderStyle Width="12%"></HeaderStyle>
</asp:BoundColumn>
          ....
</Columns>
...
</DataGrid ...>

解决方案 »

  1.   


    在“修改“状态:
     Dim tb As TextBox = CType(DataGrid1.Items(e.Item.ItemIndex).Cells(n).Controls(0), TextBox)
      tb.Width = Unit.Pixel(100)
    “显示“状态:
    直接用DATAGRID的属性修改。
      

  2.   

    惨了,我的列是在运行的时候创建的,如下代码        Dim ds As New DataSet()
            Dim ssql As String = "SELECT  * FROM JILIANG.JGQJ"
            Dim cn As New OleDb.OleDbConnection("Provider=MSDAORA;Password=1212;User ID=web;Data Source=stcorcle")
            Dim Da As New OleDb.OleDbDataAdapter()
            Da.SelectCommand = New OleDb.OleDbCommand(ssql, cn)
            Da.Fill(ds, "量具")
            dgdLiangJv.DataSource = ds.Tables("量具").DefaultView
            dgdLiangJv.DataBind()
            dgdLiangJv.Columns(1).ItemStyle.Width = Unit.Pixel(100)        cn.Close()在我设置宽度的那一步 
           dgdLiangJv.Columns(1).ItemStyle.Width = Unit.Pixel(100)出错了,他表示还没有列(1),除了在运行前就绑定列,还有什么办法???
      

  3.   

    但是我的列是自动生成的
            Dim ds As New DataSet()
            Dim ssql As String = "SELECT * FROM JILIANG.JGQJ"
            Dim cn As New OleDb.OleDbConnection("Provider=MSDAORA;Password=1212;User ID=web;Data Source=stcorcle")
            Dim Da As New OleDb.OleDbDataAdapter()
            Da.SelectCommand = New OleDb.OleDbCommand(ssql, cn)
            Da.Fill(ds, "量具")
            dgdLiangJv.DataSource = ds.Tables("量具").DefaultView
            dgdLiangJv.DataBind()
            'dgdLiangJv.Columns(1).ItemStyle.Width = Unit.Pixel(100)
            cn.Close()这里设置列会出错