2013-10-07 75 views
0

我試圖通過下拉列表 提交文件時,管理員選擇批准/拒絕在GridView控件一次,然後點擊提交按鈕,然後採取行動進行 我的代碼提交按鈕必須爲非負數且小於集合的大小

protected void Button1_Click(object sender, EventArgs e) 
    { 
     //foreach (GridViewRow row in GrdFileApprove.Rows) 
     //{ 
     // //If row in Datarow then go ahead and find the control 
     // if (row.RowType == DataControlRowType.DataRow) 
     // { 
     //  DropDownList DropDownListcontrol = row.FindControl("DropDownList4") as DropDownList; 


     // } 
     //} 
     string connStr 
     ConfigurationManager.ConnectionStrings["mydms"].ConnectionString; 
     SqlConnection mySQLconnection = new SqlConnection(connStr); 
     if (mySQLconnection.State == ConnectionState.Closed) 
     { 
      mySQLconnection.Open(); 
     } 

     // Sql Command Object 
     //SqlCommand mySqlCommand; 


     DropDownList drdList; 
     foreach (GridViewRow row in GrdFileApprove.Rows) 
     { 
      drdList = (DropDownList) 
     (GrdFileApprove.Rows[row.RowIndex].Cells[1].FindControl("DropDownList4")); 
      if (GrdFileApprove.DataKeys[row.RowIndex]["ApproveID"].ToString() != 
     drdList.SelectedValue) 
    { 

     SqlCommand cmd = new SqlCommand("approved", mySQLconnection); 
    } 
} 

if (mySQLconnection.State == ConnectionState.Open) 
{ 
    mySQLconnection.Close(); 
} 

它給我的錯誤在這行

if (GrdFileApprove.DataKeys[row.RowIndex]["ApproveID"].ToString() != 
     drdList.SelectedValue) 

ERROR

指數超出範圍。必須是非負數且小於集合的大小。 參數名稱:索引

任何解決方案?

+5

'必須是非負值且小於集合的大小。「# – walther

+2

顯然,您正在嘗試索引不存在的集合元素。 'DataKeys'中是否存在'row.RowIndex'?如果是這樣,DataKeys [row.RowIndex]'中是否存在''ApproveID''?其中一個沒有,你可以調試找出哪一個。 – David

+0

只是爲了好玩。什麼是GrdFileApprove定義爲? (它是什麼類型的?) – 2013-10-07 18:00:29

回答

-1

看看你

GrdFileApprove.DataKeys[row.RowIndex]["ApproveID"] 

我把一個斷點在這條線上,並檢查您GrdFileApprove.DataKeys,看看你的row.RowIndex值和「ApproveID」有效期與DataKeys集合訪問。

+0

雖然這不是線路拋出異常,它是以下行。 – Servy

+0

是的,在grdiview中有幾個文件.. –

+0

它投擲哪條線? –

相關問題