1

私は 2 つの gridviewsgv1とid を持っていgv2ます。両方のグリッドビューが を指しています。ObjectDataSourceods1DataSourceID="ods1"

私の質問は、ObjectDataSourcegridview が呼び出したイベントの選択をどのように知ることができるかですods1。を呼び出したグリッドビューに基づいて、入力パラメーターを設定したいと考えていますods1

4

3 に答える 3

0

これは簡単にはできないと思いますし、ODS の考え方に反するような気がします。

ObjectDataSource同じリポジトリ クラスからデータを取得するために2 つの を委任できますが、2 つの異なるパラメーター セットが必要な場合は、2 つの異なるデータ ソースが必要です。したがって、リポジトリ コードはオブジェクト データ ソース インスタンス間で共有されるため、コードを複製する必要はありません。

于 2013-03-19T13:05:57.167 に答える
0

警告: ハックアヘッド

私はWiktor Zychla's answerに同意する傾向がありますが、本当にこれを行う必要がある場合は...

これを達成するために私が考えることができる唯一のことは、各の「DataBinding」イベントを処理しGridView、セッション変数を設定して、どれがObjectDataSource「Selecting」イベントを呼び出そうとしているかを示すことです。

したがって、GridViewメソッドは次のようになります。

protected void gv1_DataBinding(object sender, EventArgs e)
{
    Session["currentGridID"] = "gv1";
}

protected void gv2_DataBinding(object sender, EventArgs e)
{
    Session["currentGridID"] = "gv2";
}

次に、そのセッション変数をチェックして、今回の起動ObjectDataSource中にどの ID が含まれているかを確認できます。ObjectDataSource

protected void ods1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
    if(Session["currentGridID"] == "gv1")
    {

    }
    else
    {

    }
}
于 2013-03-19T13:11:07.200 に答える
-1

objectdatasource を呼び出すグリッドビューの名前を取得するには

次のようなことができます:

string CallingGridName = ((ObjectDataSourceID)sender).ID;
于 2013-03-19T12:38:13.410 に答える