当前位置:编程学习 > C#/ASP.NET >>

ASP.NET 索引超出范围。必须为非负值并小于集合大小。

【ASP.NET】索引超出范围。必须为非负值并小于集合大小。参数名 index

在属性DataKeysNames里面加上一个需要绑定的主键。利用GridView1.DataKeys[e.RowIndex].Values[n].ToString(),,来选择 第一个为0


“/WebReport”应用程序中的服务器错误。

--------------------------------------------------------------------------------

索引超出范围。必须为非负值并小于集合大小。
参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

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

源错误:


行 76: */
行 77:
行 78:        GridView1.DataBind();
行 79:
行 80:       //  da.DataBind();


源文件: e:\成型报表\FoxReport\FoxReport\WebReport\WReport\WTCallDetail.aspx.cs    行: 78

堆栈跟踪:


[ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index]
System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) +64
System.ThrowHelper.ThrowArgumentOutOfRangeException() +15
System.Collections.Generic.List`1.get_Item(Int32 index) +7497276
System.Collections.Generic.List`1.System.Collections.IList.get_Item(Int32 index) +4
System.Web.UI.WebControls.EnumeratorOnIList.get_Current() +30
System.Web.UI.WebControls.EnumeratorOnICollection.get_Current() +13
System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +2079
System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +57
System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14
System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +114
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
System.Web.UI.WebControls.GridView.DataBind() +4
WReport_WTCallDetail.Bind(String departmentid, String agentno, String employeeno, String callee, String begintime, String endintime) in e:\成型报表\FoxReport\FoxReport\WebReport\WReport\WTCallDetail.aspx.cs:78
WReport_WTCallDetail.ImageButton1_Click(Object sender, ImageClickEventArgs e) in e:\成型报表\FoxReport\FoxReport\WebReport\WReport\WTCallDetail.aspx.cs:148
System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +108
System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +118
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
这个我弄了发长时间还没有弄发,求解决方法




--------------------------------------------------------------------------------

版本信息: Microsoft .NET Framework 版本:2.0.50727.3603; ASP.NET 版本:2.0.50727.3082  

--------------------编程问答-------------------- debug吧,你给这么句谁能说具体?索引不存在。你只有看具体代码看才成。 

--------------------编程问答-------------------- 应该是访问List部分的问题,索引值超出范围。代码贴下,或是你自己调试下 

--------------------编程问答-------------------- GridView1 绑定的数据有问题! 

--------------------编程问答-------------------- 调试 

--------------------编程问答-------------------- 设计columns和keynames等等时列名都写对了吗?


如果列名全都写对了,那么贴出
WReport_WTCallDetail.Bind(String departmentid, String agentno, String employeeno, String callee, String begintime, String endintime)

这个方法来。

--------------------编程问答-------------------- Row的Index从几开始的 

--------------------编程问答-------------------- 跟下看下个数和index值 

--------------------编程问答-------------------- debug下。看返回的数据值 和你绑定的是否一致啊 

--------------------编程问答-------------------- 代码,得贴。 

--------------------编程问答-------------------- 单步调试,gridview绑定数据问题 

--------------------编程问答-------------------- 是不是因为是第二页不存在的问题 

--------------------编程问答-------------------- using System;

using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BLL;

public partial class WReport_WTCallDetail : System.Web.UI.Page
{
TCallDetailManager ttailManager=new TCallDetailManager();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["wtcall"] = null;



Bind(departmentid, agentno, employeeno, callee, begintime, endintime);
}
}

void Bind( string departmentid, string agentno, string employeeno, string callee,string begintime, string endintime)
{
PagedDataSource pds=new PagedDataSource();

pds.AllowPaging=true;

pds.PageSize = 10;



pds.CurrentPageIndex=Convert.ToInt32(ViewState["wtcall"]);


pds.DataSource = ttailManager.TCallDetailtimeinto(departmentid, agentno, employeeno, callee, begintime, endintime);
inkButton3.Text = "当前第" + (pds.CurrentPageIndex + 1) + "页/共" + pds.PageCount + "页";


Label5.Text = "当前第" + (pds.CurrentPageIndex + 1) + "页/共" + pds.PageCount + "页";



GridView1.DataSource = pds;



GridView1.DataBind();


if (pds.IsFirstPage)
{
LinkButton1.Enabled = false;
LinkButton2.Enabled = true;
}
else if (pds.IsLastPage)
{
LinkButton1.Enabled = true;
LinkButton2.Enabled = false;
}
else
{
LinkButton1.Enabled = LinkButton2.Enabled = true;

}


}



protected void LinkButton1_Click(object sender, EventArgs e)
{

ViewState["wtcall"] = Convert.ToInt32(ViewState["wtcall"]) - 1;
Bind(departmentid, agentno, employeeno, callee, begintime, endintime);
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
ViewState["wtcall"] = Convert.ToInt32(ViewState["wtcall"])+1;
Bind(departmentid, agentno, employeeno, callee, begintime, endintime);
}
string begintime=null;
string endintime = null;
string departmentid = null;
string agentno = null;
string employeeno = null;
string callee = null;
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (TextBox1.Text.Trim() != null && TextBox1.Text.Trim() != "")
{
departmentid = TextBox1.Text.Trim();
} if (TextBox2.Text.Trim() != null && TextBox2.Text.Trim() != "")
{
agentno = TextBox2.Text.Trim();
}
if (TextBox3.Text.Trim() != null && TextBox3.Text.Trim() != "")
{
employeeno = TextBox3.Text.Trim();
} if (TextBox4.Text.Trim() != null && TextBox4.Text.Trim() != "")
{
callee = TextBox4.Text.Trim();
}
if (TextBox5.Text.Trim() != null && TextBox5.Text.Trim() != "")
{
begintime = TextBox5.Text.Trim();
}
if (TextBox6.Text.Trim() != null && TextBox6.Text.Trim() != "")
{
endintime = TextBox6.Text.Trim();
}

Bind(  departmentid, agentno, employeeno, callee,begintime,endintime);

TextBox1.Text = TextBox2.Text = TextBox3.Text = TextBox4.Text = "";
}



protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

}
}
这是错页面的全部代码,我是用MVC方式写的
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,