62,268
社区成员
发帖
与我相关
我的任务
分享索引超出范围。必须为非负值并小于集合大小。
参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index
源错误:
行 162: for (int i = 0; i < dsLeave.Tables["leave"].Rows.Count; i++)
行 163: {
行 164: Image temDelPic = (Image)Repeater1.Items[i].FindControl("delPic");
行 165: if (Request.Cookies["MktMemberCookies_3C"] == null)
行 166: { }
源文件: e:\n\my31net\corLeaveWord.aspx.cs 行: 164 /// <summary>
/// 防止分页时,索引超出范围
/// </summary>
/// <param name="pageSize">单页显示的项数</param>
void splidPage(int pageSize)
{
for (int i = 0; i < pageSize; i++)
{
//show delPic
Image temDelPic = (Image)Repeater1.Items[i].FindControl("delPic");
if (Request.Cookies["MktMemberCookies_3C"] == null)
{ }
else
{
if (memberID == HttpUtility.UrlDecode(Request.Cookies["MktMemberCookies_3C"]["MemID"]))
{
temDelPic.Visible = true;
}
else
{
temDelPic.Visible = false;
}
}
//show Leave Reply
Label temLblID = (Label)Repeater1.Items[i].FindControl("lblID");
Repeater temRep = (Repeater)Repeater1.Items[i].FindControl("Repeater2");
SqlDataAdapter sdaTem = new SqlDataAdapter("Select LR_UserName,LR_Content From TC_LeaveReply Where LR_LeaveID=" + temLblID.Text + " And LR_ShopID=" + Request.Params["shid"], MyCls.SqlConn);
DataSet dsTem = new DataSet();
sdaTem.Fill(dsTem, "reply");
if (dsTem.Tables["reply"].Rows.Count > 0)
{
temRep.DataSource = dsTem.Tables["reply"];
temRep.DataBind();
}
}
}
int leaveCount()
{
int leaveNum;
SqlCommand cmdLeaveCount = new SqlCommand("Select Count(LW_ID) From TC_LeaveWord Where LW_MemberID=" + memberID, MyCls.SqlConn);
leaveNum = (Int32)cmdLeaveCount.ExecuteScalar();
cmdLeaveCount.Dispose();
return leaveNum;
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
SqlCommand cmdSubmit = new SqlCommand("Insert Into TC_LeaveWord(LW_MemberID,LW_Content,LW_UserName,LW_Tel,LW_Email,LW_IP) Values(@LW_MemberID,@LW_Content,@LW_UserName,@LW_Tel,@LW_Email,@LW_IP)", MyCls.SqlConn);
cmdSubmit.Parameters.Add("@LW_MemberID", memberID);
cmdSubmit.Parameters.Add("@LW_Content", txtContent.Text);
cmdSubmit.Parameters.Add("@LW_UserName", txtRealName.Text.Trim() == "请填您的大名" ? "匿名" : txtRealName.Text.Trim());
cmdSubmit.Parameters.Add("@LW_Tel", txtTel.Text.Trim());
cmdSubmit.Parameters.Add("@LW_Email", txtEmail.Text.Trim());
cmdSubmit.Parameters.Add("@LW_IP", Request.UserHostAddress);
try
{
cmdSubmit.ExecuteNonQuery();
Response.Write("<script languge='javascript'>alert('留言成功!');window.location.href='corLeaveWord.aspx?shid=" + sh_id + "'</script>");
Response.End();
}
catch (SqlException ex)
{
Response.Write("留言失败!原因可能是:" + ex.Message);
Response.End();
}
}
protected void lbtnHomePage_Click(object sender, EventArgs e)
{
lblNowPage.Text = "1";
repBind();
if (!pds.IsLastPage)
{
splidPage(pds.PageSize);
}
else
{
splidPage(leaveCount() % pds.PageSize);
}
}
protected void lbtnPreviousPage_Click(object sender, EventArgs e)
{
lblNowPage.Text = Convert.ToString(Convert.ToUInt32(lblNowPage.Text) - 1);
repBind();
if (!pds.IsLastPage)
{
splidPage(pds.PageSize);
}
else
{
splidPage(leaveCount() % pds.PageSize);
}
}
protected void lbtnNextPage_Click(object sender, EventArgs e)
{
lblNowPage.Text = Convert.ToString(Convert.ToUInt32(lblNowPage.Text) + 1);
repBind();
if (!pds.IsLastPage)
{
splidPage(pds.PageSize);
}
else
{
splidPage(leaveCount() % pds.PageSize);
}
}
protected void lbtnEndPage_Click(object sender, EventArgs e)
{
lblNowPage.Text = lblCountPage.Text;
repBind();
if (!pds.IsLastPage)
{
splidPage(pds.PageSize);
}
else
{
splidPage(leaveCount() % pds.PageSize);
}
}
foreach (RepeaterItem item in Repeater1.Items)
{
//show delPic
//Image temDelPic = (Image)Repeater1.Items[i].FindControl("delPic");
Image temDelPic = (Image)item.FindControl("delPic");
if (Request.Cookies["MktMemberCookies_3C"] == null)
{ }
else
{
if (memberID == HttpUtility.UrlDecode(Request.Cookies["MktMemberCookies_3C"]["MemID"]))
{
temDelPic.Visible = true;
}
else
{
temDelPic.Visible = false;
}
}
//show Leave Reply
//Label temLblID = (Label)Repeater1.Items[i].FindControl("lblID");
//Repeater temRep = (Repeater)Repeater1.Items[i].FindControl("Repeater2");
Label temLblID = (Label)item.FindControl("lblID");
Repeater temRep = (Repeater)item.FindControl("Repeater2");
SqlDataAdapter sdaTem = new SqlDataAdapter("Select LR_UserName,LR_Content From TC_LeaveReply Where LR_LeaveID=" + temLblID.Text + " And LR_ShopID=" + Request.Params["shid"], MyCls.SqlConn);
DataSet dsTem = new DataSet();
sdaTem.Fill(dsTem, "reply");
if (dsTem.Tables["reply"].Rows.Count > 0)
{
temRep.DataSource = dsTem.Tables["reply"];
temRep.DataBind();
}
}
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="DataBound">
</asp:Repeater>
protected void DataBound(object sender, RepeaterItemEventArgs e)
{
e.Item.FindControl("delPic");
}
Image temDelPic = (Image)(Repeater1.Items[i].FindControl("delPic"));