1

Must be non negative,index was out of range エラーが発生しましたが、すべてのセルにデータがあり、インデックスもオーバーフローしていません

private void editToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmProfileMaster frm = new frmProfileMaster();
            frm.status = "Edit";
            frm.pid = Convert.ToInt32(gdvProfile.SelectedRows[0].Cells[0].Value);
            frm.Show();
        }
4

2 に答える 2

1

利用可能なデータがないか、0 番目のインデックスに行が存在しないようです。

したがって、 を指している場合SelectedRows[0].Cells[0]、行がないため、エラーが発生します。

クイックウォッチで取得している値を確認し、それに応じてコードを作成します。

于 2013-08-07T05:08:35.033 に答える
0

ここで必要なのは、gridviews の最初のセル コントロールの値です。右。次のように試すことができます。

 //if your first cell control is label then
 Label lbl = (Label)gdvProfile.Rows[0].FindControl("lbl");
 frm.pid = Convert.ToInt32(lbl.Text);

 Same way you can check for all control.

Hope it helps.
于 2013-08-07T05:49:18.917 に答える