используя OnRowCommand GridView в asp.net - PullRequest
1 голос
/ 07 марта 2012

я создал веб-приложение, в котором я использовал onrowcommand и создал обработчик в коде позади, теперь у меня есть кнопка внутри пустой таблицы, всякий раз, когда я нажимаю кнопку, моя onRowCommand не выполняется. Ниже мой код.

<asp:GridView ID="grdExternalLinkSection1" runat="server" Width="100%" AutoGenerateColumns="false" CellPadding="5" OnRowCommand="grdExternalLinkSection_RowCommand">
                                <EmptyDataTemplate>
                                    External Link Title
                                    <asp:TextBox ID="txtExternalLinkTitleEmptySection1" runat="server"></asp:TextBox>
                                    External Link Url
                                    <asp:TextBox ID="txtExternalLinkUrlEmptySection1" runat="server"></asp:TextBox>
                                    <asp:Button ID="btnExternalLinkEmptySection1" runat="server" Text="Add" CommandArgument="1" CommandName="headernew" style="padding:3px; width:56px;" />
                                </EmptyDataTemplate>
</asp:GridView>

есть еще поля, но это то, о чем я говорю. и вот мой код для обработчика события RowCommand.

protected void grdExternalLinkSection_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        Response.Write("welcome");
    }

это никогда не оправдывает обработчик, и ниже указана моя страница:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="NewsletterASPVersion.ascx.cs" Inherits="RWO_Controls_NewsletterASPVersion" %>

это работало один раз, а после этого никогда не работало. Кто-нибудь знает, что может быть причиной этого.

1 Ответ

4 голосов
/ 07 марта 2012

Существует две возможные ловушки, в которые вы могли попасть:

  1. При каждой обратной передаче вы привязываете GridView к его источнику данных.Поэтому всегда проверяйте:

    if(!IsPostBack)BindGrid();
    
  2. Вы не звоните grdExternalLinkSection1.DataBind(), когда источник данных пуст

Но тогда вы вообще не увидите EmptyDataTemplate.Поэтому я думаю, что вы попали в первую ловушку.

...