1。连到一个数据表,该表有15列,结果在datagrid中显示的时候,每列只有一个文字的宽度,列标题排列极不匀称,怎样解决?
2。在网页的pageload事件中,我写入了以下代码:
 pageload
{
        连接到数据库的代码
        ..........
        binddatagrid()
}结果我点击datagrid自带的编辑按钮的时候,由于要网页会先调用pageload,总是不响应edit事件,我把pageload中的binddatagrid去掉后,响应edit事件,但是在我刷新网页的时候,由于pageload事件中没有了binddatagrid,datagrid里面没有数据,就看不见了。请问怎样解决这个矛盾?我是采采鸟,刚学asp.net的,谢谢大家了!

解决方案 »

  1.   

    1.自己调整每列的width属性,或将datagrid的width属性设为100%,让其根据内容多少自动排列。
    2.
     pageload
    {
    if(!this.IsPostBack)
    {
            连接到数据库的代码
            ..........
            binddatagrid()
    }
    }
    edit事件中要写绑定代码binddatagrid()
      

  2.   

    1:补充点.datagrid你还可以用模板列写,里面加入table,自己定义宽度和高度
    2:楼上说的很好
      

  3.   

    Q1:
       列数太多,每个列分的单元格过小,然而列标题的字符数又大于了该单元格的宽度,所以变得扭曲.
     解决办法2种:
      a.按楼上说的按100%比去设(页面下方会出现滚动条)
      b.在15个列中选一些重要的列显示(推荐)Q2:上面的兄弟们正解.
      

  4.   

    问题2还是没有解决啊,我每次点击datagrid上面的一个按钮,不管是edit还是页面切换,页面都自动的先调用pageload,如果加上了if !me.postback的话,直接就什么都不显示了,感觉我每次点击一个按钮,页面里的所有控件都重新初始化,是不是链接数据库和binddatagrid的代码不应该在pageload里面写啊?急死了!
      

  5.   

    pageload
    {
     if(!this.IsPostBack)
     {
            连接到数据库的代码
            ..........
            binddatagrid()
     }
    }
    edit事件
    {
           重新连接到数据库
            ..........
           重新邦定数据源 binddatagrid()
    }
      

  6.   

    链接数据库和binddatagrid的代码最好不要寫在pageload中
      

  7.   

    试试iframe,定义宽度之后可以拖动
      

  8.   

    pageload 中
    if(!this.IsPostBack)
    {
    bind();
    }
    =================
    public void bind()
    {
    绑定数据库
    }设置宽度可以在属性生成器里的列里面设置如果不行 就在item事件中 设置
    //设置每列的宽度
    e.Item.Cells[0].Width=40;
    e.Item.Cells[1].Width=160;
    e.Item.Cells[2].Width=150;
    e.Item.Cells[3].Width=50;记住单位是 px  你要知道DataGrid的宽度
      

  9.   

    edit 事件 
    DataGrid1.EditItemIndex=e.Item.ItemIndex;
    bind(); //重新绑定下