0

そのため、c# でコーディングされた Web サイトがあり、特定のフォームを読み込むと、データベースからいくつかのレコードが読み込まれ、グリッド ビューに入力されます。1 つのイベントは、再送信とマークされたボタンのボタン クリックです。このメソッドは、選択されているグリッド内のすべてのアイテムを受け取り、それらを再送信します。選択したアイテムが特定のルール セットに従っていない場合、別のフォームがポップアップ表示され、レコードを移動して再送信する必要があることが示されます。ユーザーは、[はい] をクリックしてレコードを移動するか、[いいえ] をクリックしてビジネスを続行するかを選択できます。

選択したアイテムのリストを再送信クリックから別のフォームのはいクリックに渡す必要があります。唯一の問題は、ポップアップとグリッドが技術的に同じフォームであることです。私はそれとすべてのジャズをロードできますが、ロード イベントとすべてのポップアップのコードは、グリッドと同じ form.cs にあります。イベント ハンドラを機能させることができませんでした。通常、カスタムの EventArgs クラスを作成してそこに値を格納しますが、2 つのフォームは技術的に同じであるため、情報を適切に転送する方法がわかりません。はいクリック イベントから選択した値のリストにアクセスしようとすると、null 参照例外が発生し続けます。

私が何をすべきかについて何か提案はありますか?プロパティと変数は機能していないため、技術的には 2 つの異なる形式であると思われます。このコンテキストでそれらを操作する方法がわかりません。

コードが必要な場合、または明確にしたい場合はお知らせください。

4

1 に答える 1

0

次のように、選択したアイテムのリストをSessionキャッシュに保存します。

protected void buttonResend_Click(object sender, EventArgs e)
{
    List<Items> listOfSelectedItems = new List<Items>();
    // Put logic here for populating listOfSelectedItems

    // Store listOfSelectedItems in Session cache
    Session["SelectedItems"] = listOfSelectedItems;
}

注: にItems格納されるクラスを作成しましたList<T>。明らかに、選択したアイテムを保持するために持っているクラスは何でも、または のリストだけでも機能しstringます。

「その他」ページで、次のようにlistOfSelectedItemsinを取得できます。Session

if(Session["SelectedItems"] != null)
{
    List<Items> listOfItems = Session["SelectedItems"] as List<Items>;

    // Put logic here to work with list of selected items
}
于 2013-08-09T02:55:52.843 に答える