GridViewの機能を拡張するカスタムユーザーコントロールを作成しました。 UserControlから継承し、IPostBackEventHandlerを実装します。RaisePostBackEventがユーザーコントロールのために起動しない
私が抱えている問題は、IPostBackEventHandler.RaisePostBackEvent関数SOMETIMESがフレームワークによって呼び出されないということです。私はこのコントロールをいくつかのページに配置していますが、いくつかのページではうまく動作し、いくつかのページではそうではありません。私はRequest ["EVENTTARGET"]をチェックし、それがコントロールのUniqueIDと等しいことを確認しましたが、RaisePostBackEventはまだ呼び出されません。
RaisePostBackEventが呼び出されない理由を知っていますか?ここで
は私のユーザーコントロールのコードです:ここで
namespace Warrior.PL.Controls
{
/// <summary>
/// A GridView that supports filter fields at the top of each column.
/// </summary>
[ParseChildren(ChildrenAsProperties = true)]
[ToolboxData("<{0}:FilterableGridView runat=\"server\"></{0}:FilterableGridView>")]
public partial class FilterableGridView : UserControl, IPostBackEventHandler
{
...
#region IPostBackEventHandler Members
void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
{
if (eventArgument != null && eventArgument.StartsWith("Filter"))
{
OnFiltering(new GridViewFilterEventArgs()); // This is a function that I created
}
}
#endregion
...
}
}
は作品のいずれかのページ上のコントロールの実装です:
<warrior:FilterableGridView ID="gvItemCert" runat="server" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false" CellPadding="4" CssClass="GridView"
OnPageIndexChanging="gvItemCert_PageIndexChanging" OnRowDataBound="gvItemCert_RowDataBound" OnSorting="gvItemCert_Sorting" OnFiltering="gvItemCert_Filtering" PageSize="100">
...
</warrior:FilterableGridView>
そしてここでは、ページ上の実装ですそれは動作しません:
<warrior:FilterableGridView ID="gvEquipSN" runat="server" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false" CellPadding="4" CssClass="GridView" EnableViewState="false"
OnPageIndexChanging="gvEquipSN_PageIndexChanging" OnRowDataBound="gvEquipSN_RowDataBound" OnSorting="gvEquipSN_Sorting" OnFiltering="gvEquipSN_Filtering" PageSize="20">
...
</warrior:FilterableGridView>
私が見る唯一の違いは、作業にはEnableViewState = "false"があります。私は、EnableViewState = "true"を設定すると何も助けにならないので、問題であると判断しました。
また、私は両方のページでAJAXを使用しています。これを読んで、誰の利益のために
修正のおめでとう!あなたができるときは、他の人があなたの成功から学ぶことができるように、あなたの答えに「受け入れられた」と記入してください。乾杯〜 –