DataGrid 编辑的时候,怎样限制 TextBox 模板的宽度? 我不会设置,那TextBox总是特别宽,弄得整个DataGrid都很宽,不好看了。((TextBox)e.Item.Cells[1].Controls[1]).Width = 80;我这样设置也不行。出现这个错误 “指定的参数已超出有效值的范围。参数名: index”请帮帮我! 在线等!

解决方案 »

  1.   

    使用模板列
    Width="100px" Text='<%# DataBinder.Eval(Container, "DataItem.CName") %>'
      

  2.   

    <asp:TemplateColumn HeaderText="分类名">
    <ItemTemplate>
    <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.CName") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=txtName runat="server" Width="100px" Text='<%# DataBinder.Eval(Container, "DataItem.CName") %>' MaxLength="12">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
      

  3.   

    Dim orderid As Integer
            Dim i As Integer
            Dim t(12) As TextBox        If e.Item.ItemIndex <> -1 Then
                orderid = e.Item.ItemIndex + 1            If e.Item.ItemType = ListItemType.EditItem Then
                    For i = 0 To 12
                        t(i) = CType(e.Item.Cells(i).Controls(0), TextBox)
                        t(i).CssClass = "CssStyle1"
                        Select Case i
                            Case 0
                                t(i).Width = Unit.Pixel(45)
                            Case 1
                                t(i).Width = Unit.Pixel(45)
                            Case 2
                                t(i).Width = Unit.Pixel(45)
                            Case 3
                                t(i).Width = Unit.Pixel(45)
                            Case 4
                                t(i).Width = Unit.Pixel(160)
                            Case 5
                                t(i).Width = Unit.Pixel(90)
                            Case 6
                                t(i).Width = Unit.Pixel(80)
                            Case 7
                                t(i).Width = Unit.Pixel(50)
                                t(i).Visible = False
                            Case 8
                                t(i).Width = Unit.Pixel(40)
                                t(i).Visible = False
                            Case 9
                                t(i).Width = Unit.Pixel(35)
                                t(i).Visible = False
                            Case 10
                                t(i).Width = Unit.Pixel(35)
                            Case 11
                                t(i).Width = Unit.Pixel(40)
                            Case 12
                                t(i).Width = Unit.Pixel(40)
                        End Select                Next i
                End If
      

  4.   

    private void datagrid1_itemdatabound(object sender,system.web.ui.webcontrols.datagriditemeventargs e)
    {
      if(e.item.itemtype==listitemtype.edititem)
         {
            textbox t=(textbox)e.item.cell[0].controls[0];
            t.width=20;
         }
    }