[英]Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
[英]Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
當我單擊更新按鈕時,出現此錯誤,我的更新單擊事件
protected void btnUpdate_Click(object sender, CommandEventArgs e)
{
int idx = Convert.ToInt32(e.CommandArgument);
GridViewRow gr = gvResTasks.Rows[idx];
...
}
當idx值達到19時,它工作正常..當它大於19時,出現此錯誤。
更新按鈕.aspx
<ItemTemplate> <asp:Button runat="server" ID="btnUpdate" Text="Update" OnCommand="btnUpdate_Click" CommandArgument="<%# Container.DataItemIndex %>" /> <%--<asp:Button runat="server" ID="Button1" Text="Update" onclick="btnUpdate_Click" />--%> </ItemTemplate>
updatebutton.aspx.cs
protected void btnUpdate_Click(object sender, CommandEventArgs e)
{
// int idx = Convert.ToInt32(e.CommandArgument);
int idx = Convert.ToInt32(e.CommandArgument);
GridViewRow gr = gvResTasks.Rows[idx];
Label hf = (Label)gr.FindControl("hdEmployeeID");
string sEmpID = hf.Text;
lblEmployeeID.Text = sEmpID;
lblEmployeeID2.Text = sEmpID;
int Rows = gvResTasks.Rows.Count;
for (int x = 0; x < Rows; x++)
{
GridViewRow tr = gvResTasks.Rows[x];
tr.CssClass = "WhiteBack";
}
ClearMessages();
gr.CssClass = "TealBack";
string sSubTaskID = gr.Cells[0].Text;
lblSubTaskID.Text = sSubTaskID;
lblSubTaskName.Text = @gr.Cells[1].Text;
LoadSubTaskInfo();
Single sProgress = 0;
Boolean bok = Single.TryParse(lblActualProgress.Text, out sProgress);
DateTime dPF = DateTime.Parse(lblPlannedFinish.Text);
if (dPF > DateTime.Now)
{
btnFinish.Enabled = false;
}
else if (dPF <= DateTime.Now)
{
if (sProgress >= 100)
{
btnFinish.Enabled = false;
}
else
{
btnFinish.Enabled = true;
}
//btnFinish.Enabled = true;
}
panelUpdate.CssClass = "float";
panelUpdate.Visible = false;
if (gr.Cells[7].Text != "True")
{
panelUpdate.Visible = true;
}
}
無需使用e.CommandArgument
查找GridViewRow
。 做這個
GridViewRow gr = ((Button)sender).NamingContainer as GridViewRow;
您有幾行?
嘗試這個:
int idx = Convert.ToInt32(e.CommandArgument);
if (idx < gvResTasks.Rows.Count)
{
GridViewRow gr = gvResTasks.Rows[idx];
}
另外,您可以提供btnUpdate ASPX代碼嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.