Неверный аргумент обратной передачи или обратного вызова - кнопка в сетке Telerik - PullRequest
3 голосов
/ 21 ноября 2011

Очень известное сообщение об ошибке (см. Ниже), судя по количеству результатов Google. Но каждый из них, которого я видел, предлагает установить EnableEventValidation на false. Я искал всю кодовую базу и не могу найти строку "EnableEventValidation" где-либо . Более того, этот код использовал для работы; что-то, что я сделал, явно сломало страницы. Но что?

Ошибка возникает, когда я нажимаю кнопку внутри Telerik RadGrid, объявленной как:

<telerik:RadGrid ID="MyGrid" Width="100%" ItemStyle-BorderColor="Gainsboro"
ItemStyle-BorderStyle="Solid" ItemStyle-BorderWidth="1px" ActiveItemStyle-BackColor="Bisque"
SelectedItemStyle-BackColor="Black" AllowPaging="True" PageSize="15" runat="server"
AllowSorting="true" OnItemCommand="MyGrid_ItemCommand" AutoGenerateColumns="false"
OnNeedDataSource="MyGrid_NeedDataSource" GridLines="Horizontal" AllowMultiRowSelection="false"
Skin="Black">
  <GroupingSettings CaseSensitive="false" />
  <MasterTableView Width="100%" DataKeyNames="ID" AllowFilteringByColumn="false" Font-Names="Arial"
  Font-Size="10px">
    <Columns>
      <telerik:GridButtonColumn ButtonType="PushButton" Text="Cancel" CommandName="Cancel"
      ConfirmText="Are you sure you want to cancel this?">
      </telerik:GridButtonColumn>
      ...
    </Columns>
  </MasterTableView>
  <PagerStyle Mode="NextPrevAndNumeric" />
  <FilterMenu EnableTheming="True">
    <CollapseAnimation Duration="200" Type="OutQuint" />
  </FilterMenu>
</telerik:RadGrid>

нажмите на кнопку «Отмена», и вот известная ошибка:

Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

Ответы [ 2 ]

7 голосов
/ 26 ноября 2011

Вот проблема: в моем Page_Load методе, который у меня был:

protected void Page_Load(object sender, EventArgs e) {
  MyGrid.Rebind();
}

Перепривязка сетки при обратной передаче, очевидно, что-то испортила.Я изменил его на:

protected void Page_Load(object sender, EventArgs e) {
  if (!IsPostBack) {
    MyGrid.Rebind();
  }
}

и теперь все работает.

1 голос
/ 03 апреля 2014

У меня была такая же проблема, но у меня не было Grid.Rebind () или Grid.Databind () в моем методе NeedDataSource или методе Page_Load.Это произошло сразу после того, как я перетащил столбец, который нужно сгруппировать, и затем упорядочил сгруппированный столбец ASC / DESC

. Я просто добавил

EnableEventValidation="false" 

в тег <% @ Page%> моего.Страница ASPX.Сбой заказа, но по крайней мере я больше не получаю ошибку.Как примечание, все остальное работает отлично, кроме упорядочения сгруппированного столбца

, вот код, который я использую в методе NeedDataSource

        protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        String connstr = ConfigurationManager.ConnectionStrings["PrimeIntegartionsConnectionString"].ConnectionString;

        SqlDataSource Ds = new SqlDataSource(connstr, BuildSql()); //buildsql simply returns a SQLSelect String "select * from example"
        RadGrid1.DataSource = Ds;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...