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