你要让它全部显示干什么啊,你可以把内容多的通过tip来显示啊,显示的时候就显示前几个字符,不就不会变化列的宽度了吗

解决方案 »

  1.   

    我把自己的点点经验和楼主分享下:
    如果Gridview的Width不确定,你用百分比来分配列的宽度一般都不起作用。如果要确定列宽,要做的工作一般有:
    1、给Gridview赋一个固定大小。
    2、在后台给Gridview添加一个属性,限制列宽,如GridView1.Attributes.Add("style", "table-layout:fixed");
    3、设置每列的宽度。以上纯粹个人经验,不一定正确,楼主可参考。
      

  2.   

    谢谢楼上我按你的做法固定GridView的width,又在后台加了那行语句后后,整个Gridview的宽度确实固定了下来,但所有列宽都锁定了,我单独设置也不起作用。而且长内容的那列没有实现自动换行,而是只显示了前n个字符。。我感觉应该是后台加属性加的不太合适,请问具体我应该加什么语句?
    刚接触asp没多久不太熟,见谅。
      

  3.   


    楼主可以试试:
    1、给Gridview赋一个固定大小。
    2、设置每列的宽度。
      

  4.   

    不好意思,昨天下班了没再过来看我今天试了下,不在后台给GridView添加那属性的话,即使我设置了总width以及各列的width还是不起任何作用,仍然会被拉得很宽。
      

  5.   

    你设Gridview的width值,应是每一列的宽度之和.
    另外,确保GridView的RowStyle项里的Wrap属性设为True,让列的内容超宽时自动换行.
      

  6.   

    Table的那个就暂时设定css文件解决了
    GridView的问题用 ydsunny(小强) 说的办法还是不行。。
      

  7.   

    protected String FormatArt(string TString)
        {
            if (TString != null)
            {
                TString = TString.Replace("\r", "<br/>");
                TString = TString.Replace(" ", "&nbsp;");
                return TString;
            }
            else
            {
                return TString = "无内容";
            }
        }    //固定字符串后换行
        protected string SetString(string str)
        {
            StringBuilder sb = new StringBuilder(str);
            for (int i = 0; i <= sb.Length; i++)
            {
                //注意这里是使用的  "==" 如果使用 "=" 会报错的
                //这里实现的时候65个字符一换行
                if (i % 66 == 0)
                {
                    sb.Insert(i, "\r");
                }        }
            return FormatArt(sb.ToString());
        }我也是和你一样的 我今天刚解决 http://community.csdn.net/Expert/topic/5454/5454211.xml?temp=.5823786
      

  8.   

    回楼上,不能直接在GridView中指定宽度么?都是后台限定字符长度太不方便了