CSS Friendly 中的DetailsView的问题

实现NBearDataSource控件 - 02-11 20:30 修订 - 新增Master/Detail实体CRUD示例 介绍了 基于NBearDataSource的Master/Detail实体CRUD示例

若使用CSS Friendly ASP.NET 2.0 Control Adapters 1.0 的,如下代码

1 None.gif < nb:NBearDataSource  ID ="nbdsLinkCategorys"  runat ="server"  ConnectionStringName ="Access"
2 None.gif        TypeName ="MK2.Community.Entities.LinkCategory"  EnableViewState ="true" >
3 None.gif         </ nb:NBearDataSource >
4 None.gif         < asp:DetailsView  ID ="DetailsView1"  runat ="server"  DataSourceID ="nbdsLinkCategorys"  DefaultMode ="Insert"
5 None.gif         AutoGenerateInsertButton ="true"  AutoGenerateRows ="false" >
6 None.gif             < Fields >
7 None.gif                 < asp:BoundField  DataField ="Name"  HeaderText ="Name"   />
8 None.gif             </ Fields >
9 None.gif         </ asp:DetailsView >

只要将DetailsView设置属性DefaultMode="Insert" AutoGenerateInsertButton="true" AutoGenerateRows="false"
就会出现异常:

索引超出范围。必须为非负值并小于集合大小。
参数名: index

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index

源错误:
行 57:                     {
            行 58:                         DetailsViewRow row = ControlAsDetailsView.Rows[iRow];
            行 60:                             ((row.RowState & DataControlRowState.Insert) == DataControlRowState.Insert) &&
            行 61:                             (!ControlAsDetailsView.Fields[row.RowIndex].InsertVisible))


源文件: XXXXX\WebSite\App_Code\Adapters\DetailsViewAdapter.cs    行: 59



我将源代码修改了一下,这样可以工作了
 1 None.gif DetailsViewRow row  =  ControlAsDetailsView.Rows[iRow];
 2 None.gif                         // if ((!ControlAsDetailsView.AutoGenerateRows) &&
 3 None.gif                         //     ((row.RowState & DataControlRowState.Insert) == DataControlRowState.Insert) &&
 4 None.gif                         //     (!ControlAsDetailsView.Fields[row.RowIndex].InsertVisible))
 5 None.gif                         // {
 6 None.gif                         //     continue;
 7 None.gif                         // }
 8 None.gif
 9 None.gif                         // Fix by MK2
10 None.gif                          if  (( ! ControlAsDetailsView.AutoGenerateRows)  &&
11 None.gif                            ((row.RowState  &  DataControlRowState.Insert)  ==  DataControlRowState.Insert))
12 ExpandedBlockStart.gifContractedBlock.gif                         dot.gif {
13InBlock.gif                            if ((iRow < ControlAsDetailsView.Fields.Count) && 
14InBlock.gif                                (!ControlAsDetailsView.Fields[row.RowIndex].InsertVisible))
15ExpandedSubBlockStart.gifContractedSubBlock.gif                            dot.gif{
16InBlock.gif                                continue;
17ExpandedSubBlockEnd.gif                            }

18ExpandedBlockEnd.gif                        }

19 None.gif                         // Fix over
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值