找回密码
 立即注册

QQ登录

只需一步,快速开始

llsyz02

初级会员

13

主题

41

帖子

307

积分

初级会员

积分
307

微信认证勋章

llsyz02
初级会员   /  发表于:2016-1-14 10:15  /   查看:7340  /  回复:7
在绑定完数据后就卡死了,界面就点击不动了?是我哪写的有问题吗?

CS 后台代码,点击按钮后触发,查询数据进行绑定
TestDal dal = new TestDal();
            DataTable dt = dal.GetCheck_RecordsetMain_Pad(tb_Serno.Text, tb_PersonID.Text,(DateTime) StartDate.DateTime, (DateTime)EndDate.DateTime);
            MyGrid.ItemsSource = dt.DefaultView;


前台代码,
<c1:C1DataGrid x:Name="MyGrid" AutoGenerateColumns="False"  HorizontalAlignment="Stretch"   VerticalAlignment="Stretch"
                           CanUserFreezeColumns="None"
                           IsReadOnly="True"
                           GridLinesVisibility="All">
                <!--<c1:C1RowIndexHeaderBehavior.RowIndexHeaderBehavior>
                    <c1:C1RowIndexHeaderBehavior InitialIndex="1"/>
                </c1:C1RowIndexHeaderBehavior.RowIndexHeaderBehavior>-->
                <c1:C1DataGrid.Columns>
                    <c1ataGridTextColumn Binding="{Binding Path=ID}" Width="60"  FilterMemberPath="ID" SortMemberPath="ID" Header="ID"   />
                    <c1ataGridTextColumn Binding="{Binding OrderNo}" Width="77"  FilterMemberPath="订单号" SortMemberPath="订单号" Header="订单号"  />
                    <c1ataGridTextColumn Binding="{Binding ProdID}" Width="120"  FilterMemberPath="物料编码" SortMemberPath="物料编码" Header="物料编码"  />
                    <c1ataGridTextColumn Binding="{Binding SlbNo}" Width="100"  FilterMemberPath="SlbNo" SortMemberPath="SlbNo" Header="SlbNo"  />
                    <c1ataGridTextColumn Binding="{Binding OperaterType_Name}" Width="80"  FilterMemberPath="检验类型" SortMemberPath="检验类型" Header="检验类型"  />

                    <c1ataGridTextColumn Binding="{Binding Frequency_Name}" Width="77"  FilterMemberPath="检验过程" SortMemberPath="检验过程" Header="检验过程"  />
                    <c1ataGridTextColumn Binding="{Binding SemiProduct_SerNo}" Width="90"  FilterMemberPath="订单唯一码" SortMemberPath="订单唯一码" Header="订单唯一码"  />
                    <c1ataGridTextColumn Binding="{Binding prdPerson}" Width="70"  FilterMemberPath="工号" SortMemberPath="工号" Header="工号"  />
                    <c1ataGridTextColumn Binding="{Binding PersonName}" Width="100"  FilterMemberPath="检验人" SortMemberPath="检验人" Header="检验人"  />
                    <c1ataGridTextColumn Binding="{Binding Note}" Width="100"  FilterMemberPath="备注" SortMemberPath="备注" Header="备注"  />

                    <c1:DataGridTextColumn Binding="{Binding Recorddate}" Width="100"  FilterMemberPath="检验时间" SortMemberPath="检验时间" Header="检验时间"  />
                    <c1:DataGridTextColumn Binding="{Binding ProcessName}" Width="100"  FilterMemberPath="工序" SortMemberPath="工序" Header="工序"  />
                    <c1:DataGridTextColumn Binding="{Binding ObjectID}" Width="100"  FilterMemberPath="料号" SortMemberPath="料号" Header="料号"  />

                </c1:C1DataGrid.Columns>
            </c1:C1DataGrid>

7 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-1-14 11:44:00
沙发
回复 1楼llsyz02的帖子

谢谢您的反馈。
测试简单的DataTable作为数据源,不能重现您的问题。
代码参考:
  1. Public Sub FillC1Grid(ByVal PassedTable As DataTable, ByVal PassedGrid As C1DataGrid)

  2.        C1DataGrid1.ItemsSource = PassedTable.DefaultView
  3.        ' Note: AutoPopulateColumns must be set to false.
  4.        For Each dc In PassedTable.Columns
  5.            Dim col As New DataGridTextColumn   ' You must explicitly define the column type.
  6.            col.Binding = New Binding(dc.ColumnName)
  7.            col.Binding.Mode = BindingMode.TwoWay
  8.            col.SortMemberPath = dc.ColumnName
  9.            col.FilterMemberPath = dc.ColumnName
  10.            col.Header = dc.ColumnName
  11.            PassedGrid.Columns.Add(col)
  12.        Next

  13.    End Sub
复制代码

建议您绑定一个数据少的DataTable,测试是不是数据源的问题(数据量过大,或是数据源数据有问题)?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
llsyz02
初级会员   /  发表于:2016-1-14 11:52:00
板凳
回复 2楼Alice的帖子

确实是因为数据过多,一半都是显示多少数据?
回复 使用道具 举报
llsyz02
初级会员   /  发表于:2016-1-14 11:53:00
地板
回复 2楼Alice的帖子

我查的结果集有5000多点数据,就卡住了出不来。
回复 使用道具 举报
llsyz02
初级会员   /  发表于:2016-1-14 13:03:00
5#
回复 1楼llsyz02的帖子

我尝试绑定100多条数据就有点卡,怎么让他出滚动条,上下滚动,标题都在上面的这种。我看例子上有300多条数据,速度还成,为什么用DataTable绑定100多条就有点卡?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-1-14 15:37:00
6#
回复 5楼llsyz02的帖子

对于C1DataGrid,当列或行超过grid的范围,就会自动的展示滚动条。

对于性能问题和平台本身也有很大的影响,建议使用微软的DataGrid控件做对比测试。

如果为了提高滚动的性能,可以将C1DataGrid.ScrollMode属性设置为deferred,延迟滚动,可以提高性能。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
llsyz02
初级会员   /  发表于:2016-1-15 08:55:00
7#
回复 6楼Alice的帖子

okay,已解决。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-1-15 14:36:00
8#
回复 7楼llsyz02的帖子

谢谢反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部