2
<asp:TemplateField>
    <ItemTemplate>
        <asp:Button ID="lbShowGroup" CommandName="View" CommandArgument='<%# Eval("Topic") %>'
                            runat="server" Text="View"></asp:Button>
    </ItemTemplate>
</asp:TemplateField>

背後にあるコード:

protected void tblTopics_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "View")
    {
        Response.Redirect("Group.aspx?Topic=" + e.CommandArgument.ToString());
    }
}

デバッグはイベントに到達しませんがRowCommand、ボタンコントロールをに変更するLinkButtonと機能します。どうしたの?

4

2 に答える 2

4

ポストバックでグリッドをデータバインドしますか?

のポストバックでグリッドをバインドしないでください。データをリロードするPage_Load原因となる何かが変更されたGridView場合(ソート、ページング)、適切な偶数ハンドラーでのみ使用できます。

したがって、データバインディングをPostBack-checkでラップします。

protected void Page_Load(Object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        DataBindGrid();
    }
}

別の考えられる理由:ViewStateどこかで障害を持っていますか?

于 2013-03-13T14:01:01.263 に答える
1

同じ問題が発生し、問題がマスターページにあることがわかりましたEnableViewState="false"

を使用するようにマスターページを変更しましたEnableViewState="True"
そして、rowcommandイベントは予想通りに発火しました。

于 2014-02-17T22:41:56.990 に答える