在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ?
我的Datagrid是用数据集自动生成的!

解决方案 »

  1.   

    onload事件中调用
    <script>
    function dg_w()
    {
    for(i=0;i<Form1.length;i++)
    {
    if (Form1.elements[i].type == "text")
    {
    Form1.elements[i].width = 50; }
    }
    }
    </script>
      

  2.   

    不是!文本框直接出现在Datagrid中
      

  3.   

    我是在Asp.Net(VB.net)下编写的!
      

  4.   

    我的Datagrid是用数据集自动生成的,不能改成模版列!
      

  5.   

    你可以把AutoGenerateColumns="False",然后添加你所要的字段到模板,就可以对其进行宽度的改变了。
    ————————————————————————————————————————————— <asp:TemplateColumn SortExpression="姓名" HeaderText="姓名">
    <ItemTemplate>
    <FONT face="宋体">
    <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.姓名") %>'>
    </asp:Label></FONT>
    </ItemTemplate>
    <EditItemTemplate>
    <FONT face="宋体">
    <asp:TextBox id="TextBox1" runat="server" Width="50px"></asp:TextBox>
    <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="姓名不能为空"></asp:RequiredFieldValidator></FONT>
    </EditItemTemplate>
    </asp:TemplateColumn>
    —————————————————————————————————————————————
    这是对萁进行简单修改
      

  6.   

    private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
    {
           for(int i=0;i<e.Item.Cells.Count-1;i++)
              if(e.Item.ItemType==ListItemType.EditType)
               {
                      e.Item.Cells[i].Attributes.Add("Width", "80px")            }   
    }
      

  7.   

    我是用Asp.net(VB.Net)编写的网页!该怎么做呀
      

  8.   

    象asp一样,另做一个页面编辑,NND,没事不要的datagrid折腾,datagrid就是垃圾
      

  9.   

    你用模板列可以控制的!你试试这个:
    <asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 264px; POSITION: absolute; TOP: 152px"
    runat="server" AutoGenerateColumns="False">
    <Columns>
    <asp:TemplateColumn HeaderText="模板列">
    <ItemTemplate>
    <asp:TextBox id="TextBox2" runat="server" Width="88px"></asp:TextBox>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="TextBox1" runat="server" Width="88px"></asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="操作" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
    </Columns>
    </asp:DataGrid>
      

  10.   

    可惜我的Datagrid是用数据集自动生成的,文本框也是自动生成的,不是加进去的!
      

  11.   

    在DataGrid中的ItemDataBound事件中添加如下代码:if(e.Item.ItemType==ListItemType.EditItem)
      {
    TextBox tBox=(TextBox)e.Item.Cells[n].Controls[0];//其中n是你要控制的列号 tBox.Width=60;
      }