2012-06-28 5 views
0

При удалении строки в jqgrid я хотел бы вернуть собственный текст ошибки, когда сервер возвращает 500 ошибок. Я использую jqGrid для ASP.NET, и в сетке нет события «loadError»custom errortext on row delete jqGrid

Кто-нибудь это сделал?

jqGrid определяется как этот

<trirand:JQGrid runat="server" ID="Jqgrid" ShrinkToFit="true" Width="900px" Height="500" PagerSettings-PageSize="20" PagerSettings-PageSizeOptions="[20,50,100]" OnSearching="JQGrid_Searching" OnSorting="JQGrid_Sorting" OnRowEditing="JQGrid_RowEditing" OnRowDeleting="JQGrid_RowDeleting"> 
        <Columns> 
         <trirand:JQGridColumn DataField="ID" PrimaryKey="True" Width="40" Visible="False" /> 
         <trirand:JQGridColumn DataField="NAME" SearchType="DropDown" Width="55" SearchControlID="ddlNameFilter" 
          HeaderText="Name" Editable="true"> 
          <EditClientSideValidators> 
           <trirand:RequiredValidator /> 
          </EditClientSideValidators> 
         </trirand:JQGridColumn> 
         <trirand:JQGridColumn DataField="DESCR" SearchType="DropDown" Width="55" SearchControlID="ddlDescrFilter" 
          Searchable="True" HeaderText="Descr" Editable="true"> 
          <EditClientSideValidators> 
           <trirand:RequiredValidator /> 
          </EditClientSideValidators> 
         </trirand:JQGridColumn> 
         <trirand:JQGridColumn HeaderText=" " EditActionIconsColumn="true" Width="50" EditActionIconsEditEnabled="false" 
          CssClass="clickable" /> 
        </Columns> 
        <ClientSideEvents LoadComplete="loadComplete" ColumnSort="columnSort" RowDoubleClick="editRow"> 
        </ClientSideEvents> 
        <ToolBarSettings ShowSearchToolBar="True" ToolBarPosition="TopAndBottom"> 
        </ToolBarSettings> 
        <PagerSettings NoRowsMessage="No rows to display" /> 
        <ExportSettings ExportDataRange="All" /> 
       </trirand:JQGrid> 

ответ

2

Обратный вызов loadError используются для обработки ошибок во время заполнения/загрузки сетки. Способы редактирования формы, такие как delGridRow, поддерживают errorTextFormat обратный вызов. Так вы используете navGrid, вы должны определить errorTextFormat callback как метод prmDel параметр navGrid.

Кроме того, я рекомендую вам использовать [HandleJsonException] вместо [HandleError] в случае использования ASP.NET MVC (см. the answer). В других приложениях ASP.NET вы можете определить обработчик ошибок Application_Error в Global.asax.cs (см. the answer). Использование таких ручек упростит вам анализ ответа сервера ошибок внутри обратного вызова errorTextFormat, потому что информация об ошибке будет возвращена как JSON.

+0

Я пробовал $ .extend ($. Jgrid.del, {errorTextFormat: changeTextFormat}); Но не могу заставить его работать :( – camillajac

+0

@ user1488446: Что не работает в точности? Вызывается метод 'changeTextFormat'? Вы пробовали только следующую функцию $ .extend ($. Jgrid.del, {errorTextFormat: function (response) {alert ("Моя пользовательская ошибка:" + response.statusText);}}); '? – Oleg

+0

Привет, это работает, если у меня нет try/catch в функции delete в codebehind. моя ошибка ошибки.Это возможно? – camillajac