2

2 つの ascx コントロールを含む aspx ページがあります。最初の ascx コントロールには、ユーザーがフィルター パラメーターを選択できるようにするためのテキスト ボックスとドロップダウンが含まれています。2 番目のコントロールには、クエリ結果を表示するグリッドビューがあります。cs ファイルには、get data を呼び出すための gridview select メソッドがあります。初期ロード時に gridview select メソッドが呼び出されることに気付きました。いずれかのフィルター コントロールが選択されている場合は、gridview の select メソッドも呼び出されます。

ここに問題があります。初期ロード後、フィルターパラメーターを選択せず​​に検索ボタンをクリックすると、gridview select メソッドが呼び出されません。gridview select メソッドへの直接呼び出しはありません。gridview マークアップ言語では次のように指定されています。

グリッドビューでモデル バインディングを使用しており、マークアップ aspx ファイルで selectmethod を宣言しています。

私の質問は、フィルター処理されたパラメーターを選択せず​​にボタンをクリックしたときに、gridview select メソッドを呼び出して取得するにはどうすればよいですか。はい、ユーザーが何も選択しない場合でも、別のフェッチを実行したいと思います。

助けてくれてありがとう。

<asp:GridView ID="gvCases" runat="server"
                ItemType="OFAC.FOIA.BusinessEntities.NHObjects.VW_INBOX" 
                DataKeyNames="FOIA_Number"
                AutoGenerateColumns="false"
                SelectMethod="gvCases_GetData"
                OnPreRender="gvCases_PreRender"
                Width="100%">
4

2 に答える 2

0

この質問に対する本当の答えを知りたいのですが、最終的にやったことは、SelectMethod がコントロール値プロバイダーで引き込んだページに HiddenField を追加し、強制的に更新したいときはいつでも値を変更することでした。 . 私の場合、GUID を使用したので、値を引き戻したり、変換したり、インクリメントしたりする必要はありません。

protected void ForceGridViewRefresh()
{
    ForceRefresh.Value = Guid.NewGuid().ToString();           
}

私の選択方法では:

public IEnumerable<TestViewModel> GetData([Control("ForceRefresh")] Guid? forceRefresh)
{
    ...
}

これまでのところ、これは「機能」しているようです。

于 2013-06-07T18:09:22.880 に答える
0

GridID.DataBind() を使用すると、すぐに GridID_GetData() メソッドが呼び出されます。

于 2014-11-07T05:20:10.673 に答える