私は顧客とセールスマンを持つPerson Tableを持っています。各顧客はParentIDによってセールスマンに割り当てられます。つまり、得意先親IDは営業担当者の個人IDです。 IndividualIDが主キーです。私はIndividualIDとParentIDを受け取るストアドProcを書いた。 2つのデータグリッドをループする必要があります。どちらもチェックボックスがあり、選択した顧客を選択したセールスマンに割り当てます。 (基本的には、選択した顧客は新しいParentIDがセールスマンのIndividualIDに選ばれました) Anywya、1つのボタンクリックイベントで2つのデータグリッドをループし、ParentIDとIndividualIDを取得しようとしています。しかし、私は2番目のforeachループで私の変数の下にうねりのある線を描きます。ここに私のコードです:1つのボタンクリックイベントで2つのデータグリッドビューをループして更新を実行できますか?
protected void imgbtnReassgin_Click(object sender, ImageClickEventArgs e)
{
//loop 1st gv
foreach (GridViewRow row in gvCustomer.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("chkitemSelectorCustomers");
if (cb != null && cb.Checked)
{
GridViewRow r = gvCustomer.SelectedRow;
int oldParentID = Convert.ToInt32(r.Cells[2]);
int oIndividualID = Convert.ToInt32(r.Cells[0]);
}
} // loop 2nd gv
foreach (GridViewRow row in gvSalesman.Rows)
{
CheckBox chkBox = (CheckBox)row.FindControl("chkitemSelectorAllManagersandSalesman");
if (chkBox != null && chkBox.Checked)
{
GridViewRow ro = gvReassignCustomers.SelectedRow;
int oNewParentID = Convert.ToInt32(ro.Cells[1]);
// Assign old ParentID to Salesmans ID//
oNewParentID = oldParentID;
// Call stored proc Update Customer with New ParentID//
Individual ind = new Individual();
ind.ReassignIndividual(oIndividualID, oNewParentID);
}
}
}
ありがとうございます。私はそれらを動かす。コードがコンパイルされますが、このエラーが発生します。オブジェクト参照がオブジェクトのインスタンスに設定されていません。 int oldParentID = Convert.ToInt32(r.Cells [3]);この行に次の行を追加します。 –
SelectedRowはnullになります。 Cells [i]で再生する代わりに、隠しフィールドを追加し、そのIDにIDを格納するか、GridViewのDataKeysプロパティを使用することをお勧めします。 –