【问题标题】:Add new row to asp .net grid view using button使用按钮将新行添加到 asp .net 网格视图
【发布时间】:2011-03-01 07:50:05
【问题描述】:

我正在使用 ASP .net 2.0。我是一个学习者。我有一个网格视图,其中有一个按钮。请在下面找到 asp 标记

<form id="form1" runat="server">
<div>
    <asp:GridView ID="myGridView" runat="server">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button CommandName="AddARowBelow" Text="Add A Row Below"   runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</div>
</form>

请在下面找到代码。

使用系统;
使用 System.Collections.Generic;
使用 System.Linq;
使用 System.Web;
使用 System.Web.UI;
使用 System.Data;
使用 System.Web.UI.WebControls;

命名空间 GridViewDemo
{
    公共部分类_默认:System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            数据表 dt = new DataTable("myTable");
            dt.Columns.Add("col1");
            dt.Columns.Add("col2");
            dt.Columns.Add("col3");
            dt.Rows.Add(1, 2, 3);
            dt.Rows.Add(1, 2, 3);
            dt.Rows.Add(1, 2, 3);
            dt.Rows.Add(1, 2, 3);
            dt.Rows.Add(1, 2, 3);
            myGridView.DataSource = dt;
            myGridView.DataBind();
        }

        protected void myGridView_RowCommand(对象发送者,GridViewCommandEventArgs e)
        {

        }
    }
}

我在想,当我点击命令按钮时,它会触发 mygridview_rowcommand() 但它会抛出如下错误:

回发或回调参数无效。使用配置或页面中的 启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法注册回发或回调数据以进行验证。

谁能告诉我哪里出错了?

【问题讨论】:

    标签: .net asp.net gridview asp.net-2.0


    【解决方案1】:

    首先,尝试禁用事件验证并查看结果如何,因为这是代码中的明显问题。

    <%@ Page EnableEventValidation="false" ...
    

    但是,如果您不想恢复到这样的 hack,请执行以下操作:

    之后,从按钮的属性中删除OnCommand 事件,并将OnRowCommand 事件添加到GridView 本身。

    例子:

    <asp:GridView OnRowCommand="myGridView_RowCommand">
        ...
    </asp:GridView>
    

    这应该是处理这些命令的正确方法。
    该按钮必须具有特定 CommandName 才能按预期工作。

    See this page 获取可能的值和对此问题的更多解释。该页面上还有一个工作示例,值得您花时间查看。

    【讨论】:

    • 我照你说的做了。然后我没有得到错误。但是当我单击按钮时, myGridView_RowCommand 没有触发。我实际上添加了
       asp:Button OnCommand="myGridView_RowCommand" .... 
      并且它起作用了。
    • @SARAVAN - 顺便说一句,在您的代码中,GridViewmyGridView_RowCommand 没有以任何方式连接。
    • asp:Button OnCommand="myGridView_RowCommand" 看上面的代码,其实我一回复我的问题就加了。无论如何,我也更新了代码。
    • @SARAVAN - 我现在明白你的问题到底是什么了。为你编辑了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多