2011-12-12 56 views
3

當我從網格視圖刪除一行時,出現跟隨錯誤。 「指定的參數超出了有效值的範圍。參數名稱:值」。 以下是堆棧跟蹤:指定的參數超出了有效值範圍。參數名稱:值

[ArgumentOutOfRangeException: Specified argument was out of the range of valid values. 
Parameter name: value] 
    System.Web.UI.WebControls.GridView.set_SelectedIndex(Int32 value) +1353411 
    System.Web.UI.WebControls.GridView.HandleDeleteCallback(Int32 affectedRows, Exception ex) +368 
    System.Web.UI.DataSourceView.Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) +137 
    System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +714 
    System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +869 
    System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95 
    System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 
    System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123 
    System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 
    System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118 
    System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135 
    System.Web.UI.WebControls.LinkButton.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) +175 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 

請給我建議。

號我沒有集設置的任何索引manually.My代碼示例如下: '> '>

  </Columns> 
     </asp:GridView> 
     <asp:SqlDataSource ID="srcData" runat="server" ConnectionString="<%$ ConnectionStrings:GermanyCockpitDB %>" 
      SelectCommand="SP_BPGetData" SelectCommandType="StoredProcedure" 
      OnSelecting="srcBP_Selecting" DeleteCommand="SP_BPDeleteRecord" 
      DeleteCommandType="StoredProcedure" OnDeleting="srcData_deleting"> 
      <SelectParameters> 
       <asp:Parameter Name="Manager" Type="String" /> 
       <asp:Parameter Name="Period1" Type="String" /> 
       <asp:Parameter Name="Period2" Type="String" /> 
       <asp:Parameter Name="Period3" Type="String" /> 
       <asp:Parameter Name="Period4" Type="String" /> 
      </SelectParameters> 
      <DeleteParameters> 
       <asp:Parameter Name="ManagerName" Type="String" /> 
       <asp:Parameter Name="Name" Type="String" /> 
       <asp:Parameter Name="AName" Type="String" /> 
      </DeleteParameters> 
     </asp:SqlDataSource><br /><br /> protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     gvData.DataSourceID = "srcData"; 
     gvData.DataBind(); 
    } 

}protected void srcData_deleting(object sender, SqlDataSourceCommandEventArgs e) 
{ 
    e.Command.Parameters["@ManagerName"].Value = "Sample"; 
} 

protected void srcBP_Selecting(object sender, SqlDataSourceSelectingEventArgs e) 
{ 
    e.Command.Parameters["@ReportsToManager"].Value = "Sample"; 
    e.Command.Parameters["@Period1"].Value = "0"; 
    e.Command.Parameters["@Period2"].Value = "1"; 
    e.Command.Parameters["@Period3"].Value = "2"; 
    e.Command.Parameters["@Period4"].Value = "3"; 
} 
+1

建議你發佈刪除失敗的代碼,如上 – V4Vendetta

+0

你的代碼背後做什麼刪除? – BizApps

+0

該行[ArgumentOutOfRangeException:指定的參數超出了有效值的範圍。 參數名稱:數值] 告訴你嗎? –

回答

2

它似乎是在嘗試將selectedindex設置爲錯誤的索引。你是否在你的刪除回調或頁面加載(prender,...)中手動設置它?

+0

沒有。我沒有設置手動設置任何索引。 –

+0

然後你可以展示給你的網格以及你在刪除事件中做什麼? – lnu

+0

我剛剛用我的代碼更新了帖子 –

相關問題