Gridview 固定 列大小

kilyosann 2010-12-23 01:23:04
现在我的显示列表 会随网页的大小发生挤压,缩小 怎么样才能不让他改变 ,Gridview属性中有nowrap吗 请高手指教
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
li309000011 2010-12-23
  • 打赏
  • 举报
回复
正巧之前我用到过

1.可以这样,后置代码里面

GridView1.Columns[0].ItemStyle.Width = 80;

2.aspx页面里也可以
里面有wrap 设置false
3.可以用代码动态的控制

//本段代码是我之前在网上找的。。

public void SetGridViewWidth(GridView gridview1)
{
int rowcount = gridview1.Rows.Count; //行数
int colcount = gridview1.Columns.Count; //列数
int i=0,j=0;
int[] cellwidth = new int[colcount]; //数组用来存储各个列的最大字符数
int gridviewwidth = 0; //GridView宽度
Unit width = 0;
string temp = null;
int tempLength = 0;

for (i = 0; i < rowcount; i++) //循环数据项,获得各个列的最大字符宽度
{
for (j = 0; j < colcount; j++)
{
temp = gridview1.Rows[i].Cells[j].Text;
tempLength = LengthOfLetter(temp); //LengthOfLetter()返回含中文的字符串字符宽度,1个汉字2个字符宽
if (cellwidth[j] < tempLength)
{
cellwidth[j] = tempLength; //存储较大宽度值
}

}
}



for (j = 0; j < colcount; j++)
{
if (gridview1.HeaderRow.Visible == true) //如果GridView表头可见,将表头列宽参与比较 {
temp = gridview1.HeaderRow.Cells[j].Text;
tempLength = LengthOfLetter(temp);
if (cellwidth[j] < tempLength)
{
cellwidth[j] = tempLength;
}
}

if (gridview1.FooterRow.Visible == true) //如果GridView表尾可见,将表尾列宽参与比较 {
temp = gridview1.FooterRow.Cells[j].Text;
tempLength = LengthOfLetter(temp);
if (cellwidth[j] < tempLength)
{
cellwidth[j] = tempLength;
}
}

}


for (j = 0; j < colcount; j++)
{
if (gridview1.Columns[j].Visible == true) //将显示的列的各列最大字符宽度相加 {
gridviewwidth += cellwidth[j];
}
}

width = gridviewwidth * oneLetterLength; //GridView最大字符数乘于一个字符显示宽度得到GridView显示宽度
if (gridview1.Width.Value < width.Value) //如果在界面上已经设置了GridView的宽度,将动态求的宽度和页面上的
{ //初始化宽度比较,如果初始化宽度较小则将宽度设置为新调整的宽度。
gridview1.Width = width;
}

}



//含有中文的字符串等效英文字符串显示长度

public int LengthOfLetter(string temp)
{
int length = temp.Length;
int newlength = temp.Length;

for (int i = 0; i < length; i++) //遍历字符串每个字符
{
if (IsChineseLetter(temp, i)) //IsChineseLetter()判断是否为中文字符,是则宽度加1
{
newlength++;
}
}
return newlength;

}


//判断是否为中文字符
public bool IsChineseLetter(string input,int index)
{
int code = 0;
int chfrom = Convert.ToInt32("4e00", 16); //范围(0x4e00~0x9fff)转换成int(chfrom~chend)
int chend = Convert.ToInt32("9fff", 16);
if (input != "")
{
code = Char.ConvertToUtf32(input, index); //获得字符串input中指定索引index处字符unicode编码

if (code >= chfrom && code <= chend)
{
return true; //当code在中文范围内返回true

}
else
{
return false ; //当code不在中文范围内返回false
}
}

return false;
}
bakdfkuk 2010-12-23
  • 打赏
  • 举报
回复
可以设置固定的高和宽啊
西门喷血 2010-12-23
  • 打赏
  • 举报
回复
可以去我的博客找。。。。有关于Gridview的隐藏列和动态改变列样式 值的例子
如果还不懂可以M我
1.GridView无代码分页排序: 2.GridView选中,编辑,取消,删除: 3.GridView正反双向排序: 4.GridView和下拉菜单DropDownList结合: 5.GridView和CheckBox结合: 6.鼠标移到GridView某一行时改变该行的背景色方法一: 7.鼠标移到GridView某一行时改变该行的背景色方法二: 8.GridView实现删除时弹出确认对话框: 9.GridView实现自动编号: 10.GridView实现自定义时间货币等字符串格式: 11.GridView实现自定义时间货币等字符串格式: 12.GridView实现用“...”代替超长字符串: 13.GridView一般换行与强制换行: 14GridView弹出新页面/弹出制定大小位置新窗口: 15.GridView固定表头(不用javascript只用CSS!,很好用): 16.GridView合并表头多重表头无错完美版(以合并33行举例) 17.GridView突出显示某一单元格(例如金额低于多少,分数不及格等) 18.GridView加入自动求和求平均值小计 19.GridView数据导入Excel/Excel数据读入GridView 20.GridView实现用“...”代替超长字符串: 21.GridView一般换行与强制换行: 22.GridView显示隐藏某一: 23.GridView弹出新页面/弹出制定大小位置新窗口: 24.GridView固定表头(不用javascript只用CSS!,很好用): 26.GridView突出显示某一单元格(例如金额低于多少,分数不及格等) 27.GridView加入自动求和求平均值小计 28.GridView数据导入Excel/Excel数据读入GridView
GridView大全 1 1.GridView无代码分页排序: 2 2.GridView选中,编辑,取消,删除: 2 后台代码: 2 前台主要代码: 4 3.GridView正反双向排序: 5 后台代码: 5 前台主要代码: 7 4.GridView和下拉菜单DropDownList结合: 7 后台代码: 7 前台主要代码: 9 5.GridView和CheckBox结合: 9 后台代码: 10 前台主要代码: 11 6.鼠标移到GridView某一行时改变该行的背景色方法一: 12 前台代码: 13 7.鼠标移到GridView某一行时改变该行的背景色方法二: 14 8.GridView实现删除时弹出确认对话框: 15 9.GridView实现自动编号: 15 10.GridView实现自定义时间货币等字符串格式: 17 前台代码: 18 11.GridView实现用“...”代替超长字符串: 19 后台全部代码: 19 11.GridView一般换行与强制换行: 22 12.GridView显示隐藏某一: 23 后台全部代码如下: 24 前台代码: 26 13.GridView弹出新页面/弹出制定大小位置新窗口: 27 方案一:简单的方法,新窗口不固定大小 27 方案二:精确控制弹出窗口大小位置 28 14.GridView固定表头(不用javascript只用CSS!,很好用): 28 15.GridView合并表头多重表头无错完美版(以合并33行举例) 30 后台代码: 30 前台: 33 16.GridView突出显示某一单元格(例如金额低于多少,分数不及格等) 34 全部后台代码: 34 前台代码: 36 17.GridView加入自动求和求平均值小计 37 后台全部代码: 38 前台: 40 18.GridView数据导入Excel/Excel数据读入GridView 40 后台代码: 41 前台: 43 gridview中的数据进行特殊的显示 44 前台代码: 45 GridView复合多层表头(不限级)!!!收藏 46
PageGridViewViewPager GridView组合控件实现网格布局分页效果大多数app首页界面一般貌似可以滑动切换上下页的网格布局,这种效果用得挺多,可惜Android原生是没有这样的控件的。在工作中,我也用到过几次。但每次实现都是按ctrl A C V,代码写得也不优雅,就是再次重新复制粘贴,也避免不了看上几眼,修改修改,特别不爽快。每次吐槽的同时在想,下次我要再用到这种效果,我就将这些代码关进小黑屋。拒绝再写重复代码,虽然大多数只是按ctrl A C V。这次,我终于要将自己吐槽时的想法付之行动的。再写之前,为了避免重复造轮子。在网上搜了好多次,嗯,没有意外,我还是没有发现到惊喜。那就开始行动了。这种效果用ViewPager GridView实现,那我就叫它PageGridView吧(其实名字我也想了好久)有用的话,star一下也是不错的!!!PageGridView 特点可自由定制Item布局无需写adapter适配器,直接调用setData()方法填充数据只需实体类继承ItemModel即可可显示本地图、网络图、资源ID图标,由开发者实现动态计算PageGridView高度,不需要在布局里面写固定高度可重复setData()方法刷新数据PageGridView自定义属性属性名说明默认值pageSize每页大小8numColumns数4isShowIndicator是否显示指示器trueselectedIndicator选中指示点资源IDR.mipmap.ic_dot_selectedunSelectedIndicator未选中指示点资源IDR.mipmap.ic_dot_normalindicatorGravity指示器位置centerindicatorPaddingLeft指示器左内边距0pxindicatorPaddingRight指示器右内边距0pxindicatorPaddingTop指示器上内边距0pxindicatorPaddingBottom指示器下内边距0pxindicatorPadding指示器内边距0pxindicatorBackground指示器背景颜色Color.WHITEitemViewItem布局R.layout.item_view约定规则Item布局必须给定具体高度,默认itemView布局的高度为@dimen/item_height=80dpItem布局 TextView的id 为R.id.tv_item_nameItem布局 ImageView的id 为R.id.iv_item_iconItem默认点击效果R.drawable.selector_item_view_bgItem点击颜色值:R.color.item_view_selected_colorItem背景颜色值:R.color.item_view_normal_color一行四效果图两行四效果图自定义Item布局效果图PageGridView使用Gradle 依赖库implementation 'com.wihaohao:PageGridView:1.0.1'默认布局一般默认参数即可满足需求GridView           android:id="@ id/vp_grid_view"           android:layout_width="match_parent"           android:layout_height="wrap_content"           />一行4的布局  GridView           android:id="@ id/vp_grid_view"           android:layout_width="match_parent"           android:layout_height="wrap_content"           app:numColumns="4"           app:pageSize="4"           app:selectedIndicator="@mipmap/ic_dot_selected"           app:unSelectedIndicator="@mipmap/ic_dot_normal"           app:isShowIndicator="true"           />两行4的布局    GridView         android:id="@ id/vp_grid_view"         android:layout_width="match_parent"         android:layout_height="wrap_content"         app:indicatorPadding="10dp"         app:isShowIndicator="true"         app:itemView="@layout/my_item_view"         app:numColumns="4"         app:pageSize="8"         app:selectedIndicator="@mipmap/ic_dot_selected"         app:unSelectedIndicator="@mipmap/ic_dot_normal" />自定义Item布局 GridView                 android:id="@ id/p_grid_view2"         android:layout_width="match_parent"         android:layout_height="wrap_content"         app:indicatorGravity="right"         app:indicatorPaddingRight="@dimen/padding_10"         app:isShowIndicator="true"         app:itemView="@layout/item_custom"         app:indicatorBackground="@color/colorPrimary"         app:numColumns="5"         app:pageSize="5"/>ItemModelpublic abstract static class ItemModel {                 /**                  * 返回item名字                  *                  * @return                  */         protected abstract String getItemName();         /**                  * 设置图标                  *                  * @param imageView         */         protected abstract void setIcon(ImageView imageView);          /**                  * 特殊需求,重写该方法,设置item                  *                  * @param itemView                  */         protected void setItemView(View itemView) {         }     }Model继承VpGridView.ItemModel 为item赋值和设置图标public abstract static class ItemModel {                 /**                  * 返回item名字                  *                  * @return         */         protected abstract String getItemName();                 /**                  * 设置图标                  *                  * @param imageView                  */         protected abstract void setIcon(ImageView imageView);                 /**                  * 特殊需求,重写该方法,设置item                  *                  * @param itemView                  */         protected void setItemView(View itemView) {         }     }继承VpGridView.ItemModel 设置ItemViewpublic class MyIconModel extends PageGridView.ItemModel {     private String name;         private int iconId;         public String getName() {             return name;     }         public void setName(String name) {             this.name = name;     }         public int getIconId() {             return iconId;     }         public void setIconId(int iconId) {             this.iconId = iconId;     }         public MyIconModel(String name, int iconId) {             this.name = name;             this.iconId = iconId;     }         @Override     protected String getItemName() {             return name;     }         @Override     protected void setIcon(ImageView imageView) {         imageView.setImageResource(iconId);     } }PageGridView的使用public class MainActivity extends AppCompatActivity {     List mList;         List mList2;         private PageGridView mPageGridView;         private PageGridView mPageGridView2;         @Override     protected void onCreate(Bundle savedInstanceState) {                 super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         mPageGridView =findViewById(R.id.vp_grid_view);         initData();         mPageGridView.setData(mList);         mPageGridView.setOnItemClickListener(new PageGridView.OnItemClickListener() {            @Override             public void onItemClick(int position) {                Toast.makeText(MainActivity.this,position "",Toast.LENGTH_SHORT).show();             }         });        //自定义item         mPageGridView2=findViewById(R.id.p_grid_view2);         mPageGridView2.setData(mList2);     }         private void initData() {         mList=new ArrayList<>();         mList2=new ArrayList<>();                 for(int i=0;i<30;i ){             mList.add(new MyIconModel("测试" i,R.mipmap.ic_launcher));             mList2.add(new CustomModel("标题" i));         }     } }

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧