L
Lauchlan M
Hi
I have a grid, I want to delete a row.
The relevant code is something like
private void dGridErrorLog_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
// delete the row
nxCmdDeleteErrorLogItem.Parameters["@LogID"].Value =
dGridErrorLog.DataKeys[e.Item.ItemIndex];
nxConnection.Open();
nxCmdDeleteErrorLogItem.ExecuteNonQuery();
nxConnection.Close();
// rebind the grid:
nxConnection.Open();
nxDataAdapterErrorLog.Fill(nxDataAdapterErrorLog_DataSet, "errorlog");
dGridErrorLog.DataSource = nxDataAdapterErrorLog_DataSet;
dGridErrorLog.DataMember = "errorlog";
dGridErrorLog.DataBind();
nxConnection.Close();
}
The grid has four rows, which I can see return values for e.Item.ItemIndex
of 0, 1, 2, 3 depending on which row I click on. But calculating
dGridErrorLog.DataKeys[e.Item.ItemIndex];
gives me errors like
<<
Index was out of range. Must be non-negative and less than the size of the
collection. Parameter name: index
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.ArgumentOutOfRangeException: Index was out of
range. Must be non-negative and less than the size of the collection.
Parameter name: index
Source Error:
Line 347: private void dGridErrorLog_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
Line 348: {
Line 349: lblTest.Text =
dGridErrorLog.DataKeys[e.Item.ItemIndex].ToString();
Source File:
e:\inetpub\wwwroot\Mywebinterface_nexusdb\admin\viewerrorlog.aspx.cs
Line: 349
Stack Trace:
[ArgumentOutOfRangeException: Index was out of range. Must be non-negative
and less than the size of the collection.
Parameter name: index]
System.Collections.ArrayList.get_Item(Int32 index) +91
System.Web.UI.WebControls.DataKeyCollection.get_Item(Int32 index) +10
MyWebInterface_NexusDB.Admin.ViewErrorLog.dGridErrorLog_DeleteCommand(Object
source, DataGridCommandEventArgs e) in
e:\inetpub\wwwroot\Mywebinterface_nexusdb\admin\viewerrorlog.aspx.cs:349
System.Web.UI.WebControls.DataGrid.OnDeleteCommand(DataGridCommandEventArgs
e) +110
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs
e) +589
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source,
EventArgs e) +106
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +121
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.Rai
sePostBackEvent(String eventArgument) +115
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
System.Web.UI.Page.ProcessRequestMain() +1277
Any suggestions?
Thanks!
Lauchlan M
I have a grid, I want to delete a row.
The relevant code is something like
private void dGridErrorLog_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
// delete the row
nxCmdDeleteErrorLogItem.Parameters["@LogID"].Value =
dGridErrorLog.DataKeys[e.Item.ItemIndex];
nxConnection.Open();
nxCmdDeleteErrorLogItem.ExecuteNonQuery();
nxConnection.Close();
// rebind the grid:
nxConnection.Open();
nxDataAdapterErrorLog.Fill(nxDataAdapterErrorLog_DataSet, "errorlog");
dGridErrorLog.DataSource = nxDataAdapterErrorLog_DataSet;
dGridErrorLog.DataMember = "errorlog";
dGridErrorLog.DataBind();
nxConnection.Close();
}
The grid has four rows, which I can see return values for e.Item.ItemIndex
of 0, 1, 2, 3 depending on which row I click on. But calculating
dGridErrorLog.DataKeys[e.Item.ItemIndex];
gives me errors like
<<
Index was out of range. Must be non-negative and less than the size of the
collection. Parameter name: index
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.ArgumentOutOfRangeException: Index was out of
range. Must be non-negative and less than the size of the collection.
Parameter name: index
Source Error:
Line 347: private void dGridErrorLog_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
Line 348: {
Line 349: lblTest.Text =
dGridErrorLog.DataKeys[e.Item.ItemIndex].ToString();
Source File:
e:\inetpub\wwwroot\Mywebinterface_nexusdb\admin\viewerrorlog.aspx.cs
Line: 349
Stack Trace:
[ArgumentOutOfRangeException: Index was out of range. Must be non-negative
and less than the size of the collection.
Parameter name: index]
System.Collections.ArrayList.get_Item(Int32 index) +91
System.Web.UI.WebControls.DataKeyCollection.get_Item(Int32 index) +10
MyWebInterface_NexusDB.Admin.ViewErrorLog.dGridErrorLog_DeleteCommand(Object
source, DataGridCommandEventArgs e) in
e:\inetpub\wwwroot\Mywebinterface_nexusdb\admin\viewerrorlog.aspx.cs:349
System.Web.UI.WebControls.DataGrid.OnDeleteCommand(DataGridCommandEventArgs
e) +110
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs
e) +589
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source,
EventArgs e) +106
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +121
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.Rai
sePostBackEvent(String eventArgument) +115
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
System.Web.UI.Page.ProcessRequestMain() +1277
Any suggestions?
Thanks!
Lauchlan M