0

私の Gridview は、編集モードを終了することを拒否します。更新リンクを押すと、データベースが更新されている限り、すべてが正常に機能しますが、Gridview 行は編集モードのままです。[キャンセル] ボタンを押すと、Gridview に新しい情報が反映されます。EditIndex を -1 に設定した後でも行が編集モードのままになるのはなぜですか?

それは本当に改善策だと確信していますが、編集インデックスを設定するように指示するだけでなく、編集モードからグリッドビューを取得する方法が見つかりません。

protected void Gridview_RowUpdating(object sender, GridViewUpdateEventArgs e) {
    // Update code is here and works fine
    try {
        // this works and updates the database w/ no problems
        ObjectDataSource.Update();
    }
    catch (Exception ex) {
    }

    Gridview.EditIndex = -1;
    Gridview.DataBind();            
}

編集: try/catch を取り出しましたが、何も失敗していないように見えますが、ObjectDataSource.Update() を明示的に呼び出す必要があります。したがって、GridView のセットアップは次のとおりです。

<asp:Gridview ID="Gridview" runat="server" DataSourceID="ObjectDataSource" DataKeyNames="ID" OnDataBound="Gridiew_DataBound"
                AutoGenerateColumns="false" OnRowCommand="Gridview_RowCommand" OnRowUpdating="Gridview_RowUpdating">

そして ObjectDataSource

<asp:ObjectDataSource ID="ObjectDataSource" runat="server" TypeName="DAL.Class" SelectMethod="SelectMethod" UpdateMethod="UpdateMethod">
    <UpdateParameters>
        <asp:Parameter Name="param1" Type="Int32" />
        <asp:Parameter Name="param2" Type="String" />
        <asp:Parameter Name="param3" Type="String" />
        <asp:Parameter Name="param4" Type="String" />
        <asp:Parameter Name="param5" Type="String" />
        <asp:Parameter Name="param6" Type="Int32" />
        <asp:Parameter Name="param7" Type="String" />
        <asp:Parameter Name="param8" Type="Int32" />
    </UpdateParameters>
</asp:ObjectDataSource>

では、自動的に更新されないというのは、何が正しく設定されていないのでしょうか?

編集 2: そのため、ObjectDataSource_Updating イベントでパラメーター値を設定しています (以前は呼び出されていなかったため、ods_update() を明示的に呼び出しました)。現在、_Updating イベントが発生していますが、DAL メソッドには入りません。繰り返しますが、エラーはスローされず、何もしません....

4

2 に答える 2

0

編集が失敗するなど、何か悪いことが起こっているのかもしれません。そして、あなたはエラーを隠しているので:

catch (Exception ex) {
    }

...何が起こっているのかわかりません。

GridView/DataSource が適切に設定されている場合、Update または DataBind を明示的に呼び出す必要はありません。

于 2013-03-10T18:09:53.387 に答える