首页 新闻 会员 周边 捐助

asp.net 后台绑定数据源,修改某列的样式

0
悬赏园豆:10 [已关闭问题] 关闭于 2013-04-04 14:50

gvDisplay.Columns[i].FooterStyle.HorizontalAlign = HorizontalAlign.Right;

 

我这么写,提示索引超出范围。必须为非负值并小于集合大小。

后台应该怎么对列的样式操作啊

丶夏之星的主页 丶夏之星 | 初学一级 | 园豆:5
提问于:2013-03-15 09:52
< >
分享
所有回答(6)
0

说说你最初的需求吧。

顾晓北 | 园豆:10898 (专家六级) | 2013-03-15 10:10

就是改这一列的对齐方式

支持(0) 反对(0) 丶夏之星 | 园豆:5 (初学一级) | 2013-03-15 10:13

@夏日星: 这句代码你在哪儿写的?

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2013-03-15 13:42

public void dq()
        {
            DataTable myDt = gvDisplay.DataSource as DataTable;
            for (int i = 0; i < myDt.Columns.Count; i++)
            {
                if (myDt.Columns[i].DataType == typeof(int))
                {
                    gvDisplay.Columns[i].FooterStyle.HorizontalAlign = HorizontalAlign.Right;
                }
            }
        }

支持(0) 反对(0) 丶夏之星 | 园豆:5 (初学一级) | 2013-03-15 13:58

@夏日星: 你要知道,你的datatable的列跟gridview列可能是不一样的。。。

我看你的意思是想如果这一列是数字,就让他居右靠齐是么?

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2013-03-15 15:20

@顾晓北: 恩

支持(0) 反对(0) 丶夏之星 | 园豆:5 (初学一级) | 2013-03-15 15:51

@夏日星: 你这个想法是错的,你要知道,你的datatable的列跟gridview列可能是不一样的。。。你应该循环的是gridview的列,而不是datatable的列,而且gridview的列是没有类型的,你只有自己具体知道哪一列才行。

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2013-03-15 16:03
0

Columns[i] 不正确,i 怎么来的

geass.. | 园豆:1821 (小虾三级) | 2013-03-15 12:55

这个不影响,你可以把i看成固定值数字1

支持(0) 反对(0) 丶夏之星 | 园豆:5 (初学一级) | 2013-03-15 13:57

public void dq()
        {
            DataTable myDt = gvDisplay.DataSource as DataTable;
            for (int i = 0; i < myDt.Columns.Count; i++)
            {
                if (myDt.Columns[i].DataType == typeof(int))
                {
                    gvDisplay.Columns[i].FooterStyle.HorizontalAlign = HorizontalAlign.Right;
                }
            }
        }

支持(0) 反对(0) 丶夏之星 | 园豆:5 (初学一级) | 2013-03-15 13:58
0

你设个断点调试一下,提示错误说索引超出范围,会不会是“i < myDt.Columns.Count”的问题?另外,请注意,gvDisplay.Columns[i]与myDt.Columns[i]不是一回事

allon6318 | 园豆:858 (小虾三级) | 2013-03-15 15:38
0

应该循环  datagridview .rows

kotl | 园豆:5 (初学一级) | 2013-03-15 21:35
0

1.你这边需要查看myDt的列数对应的gvDisplay的列数是多少,找到其中关系再进行操作。例如:myDt的列数对应是gvDisplay的列数+1,那么你的代码写成这样的规则的就好了。

2.或者你在if (myDt.Columns[i].DataType == typeof(int))添加一个对gvDisplay列数的判断,看他是否超出了它的索引最大值。

Zachary_Fan | 园豆:762 (小虾三级) | 2013-03-18 11:38
0

gridview  gvDisplay_RowDataBound事件

在这里面就可以实现了

丶夏之星 | 园豆:5 (初学一级) | 2013-03-29 16:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册