0

myGridView.DataSource = LinqDataSource は機能しますが、選択に対してのみ機能します。列を編集および削除していますが、それらを使用しようとすると、イベントが捕捉されないというエラーが発生します。具体的には、OnRowDeleting を見てきましたが、接続する必要があるものは他にもあると確信しています。

myGridView.OnRowDeleting = ??

LinqDataSource で、必要なもののように見えるものを見つけることができないようです:(

編集:これは私がやっていることを示すサンプルコードです。

protected virtual void OnRowDeleted(Object sender, GridViewDeletedEventArgs e)
{
    // it means the last row was deleted
    if (fieldGridView.Rows.Count == 1)
    {
        fieldGridView.DataSourceID = null;
        fieldGridView.DataSource = new[] { new FormField { Required = false } };
        fieldGridView.AutoGenerateDeleteButton = false;
        fieldGridView.AutoGenerateEditButton = false;
    }
}

protected void InsertButton_Click(object sender, CommandEventArgs e)
{
    // pull data out of footer row and insert it into the DB
    if (fieldGridView.DataSource == null || fieldGridView.DataSource.GetType() != LinqDataSource1.GetType())
    {
        fieldGridView.DataSource = LinqDataSource1;
        fieldGridView.AutoGenerateDeleteButton = true;
        fieldGridView.AutoGenerateEditButton = true;
    }
}

また、マークアップで OnRowDeleting イベントを静的に設定したところ、エラーが解消されたことにも注意してください。ただし、Linq データ ソースが正しく設定されていません。コードはそれを更新していますが、何らかの理由で固執しているだけなので、削除列を再度有効にすると、データ ソースは割り当てた一時データ ソースのままになります (これは単なるリストです)。私が削除を押したとき、それは爆発していました。コールバックを静的に定義したので、呼び出されますが、データ ソースが linq データ ソースに適切に切り替えられていないため、削除は行われません。

本質的に、私の問題は、最後の削除でデータ ソースをリストに動的に設定すると、変更が固執することですが、最初の挿入でデータ ソースを linq データ ソースに動的に設定すると、変更はされません。こだわり。最も奇妙な点は、データ ソースだけでなく、私が行っている他の変更が固執することです。自動生成された編集および削除列を有効にしていますが、その変更はすぐに反映されます。

4

2 に答える 2

0

linqデータソースで、削除と挿入の有効化フラグを明示的に設定したことを覚えていますか?

<asp:LinqDataSource ID="MyLinqDataSource" EnableDelete="true" EnableUpdate="true" EnableInsert="true" runat="server" ....
于 2009-12-09T03:43:31.950 に答える
0

最終的に、この特定の問題を修正することはできませんでしたが、より大きな問題の回避策を見つけました。

本質的に、私が行ったことは、異なるデータ ソースで 2 つのグリッドビューを作成し、各行にカスタムの削除ボタンを作成し、それに応じてグリッドを交換することです。正確には素晴らしい解決策ではありませんが、私がやっていることには十分です。

データソースを交換するという私の最初のソリューションが機能しない理由については、わかりません。私が行ってきたプロジェクトのほとんどは、表形式のデータに MS 以外のツールを使用しているため、どこを見ればよいかさえわかりません。しかし、なぜ私がこのような行動に出くわしたのかについて良い考えを持っている人がいれば、私はすべて耳を傾けます.

于 2009-12-10T01:49:17.370 に答える