我收到以下错误;
无效的回发或回调参数。事件验证已启用 在配置中使用或<%@ Page EnableEventValidation =“true”%>在一个页面中。为了安全 目的,此功能验证回发或回调的参数 事件源自最初呈现的服务器控件 他们。如果数据有效且预期,请使用 ClientScriptManager.RegisterForEventValidation方法 注册回发或回调数据以进行验证。
我添加了一个columm,并在其中添加了一个按钮,当按钮被触发时,以下C#代码被执行;
ASP.NET代码
<Columns>
<%-- <asp:BoundField /> Definitions here --%>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server"
CommandName="AddToCart"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
Text="Add to Cart" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
C#
protected void GridView1_RowCommand(object sender,GridViewCommandEventArgs e)
{
if (e.CommandName == "AddToCart")
{
int index = Convert.ToInt32(e.CommandArgument);
// Retrieve the row that contains the button
// from the Rows collection.
GridViewRow row = GridView1.Rows[index];
}
}
我如何摆脱这个错误;
我添加了<globalization requestEncoding="utf-8"/>
,但错误仍然存在。
`
更新
<asp:GridView runat="server" ID="gdv" AutoGenerateColumns="True" OnSorting="sortRecord" AllowSorting="true" DataKeyNames="HotelName" CellPadding="4" Width="746px">
<Columns>
<%-- <asp:BoundField /> Definitions here --%>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server"
CommandName="AddToCart"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
Text="Add to Cart" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:0)
我通常发现自己使用的是按钮OnClick事件而不是GridViewRowCommand。在大多数情况下,它更容易使用。所以你的ASP看起来像;
<asp:GridView runat="server" ID="gdv" AutoGenerateColumns="False" OnSorting="sortRecord" AllowSorting="true" DataKeyNames="HotelName" CellPadding="4" Width="746px">
<Columns>
<%-- <asp:BoundField /> Definitions here --%>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server" OnClick="AddButton_Click" Text="Add to Cart" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
你的c#看起来像;
protected void AddButton_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
GridViewRow row = (GridViewRow)btn.NamingContainer;
}
现在在您的代码后面,您可以执行该行所需的任何操作,并且您知道您将获得所需的行。
希望这有帮助!