2009-10-12 2 views
2

В настоящее время я оцениваю некоторые элементы RAD от Telerik, сейчас я экспериментирую с RadGrid.RadGrid не снимает ответ на события ItemCommand

Таким образом, у меня есть управление сеткой и включенное связывание на стороне клиента для поддержки Ajax. Я создал соответствующий веб-сервис WCF для сбора данных и т. Д. Все работает очень хорошо, включая пейджинг и т. Д. Теперь я хотел иметь столбец кнопок для удаления некоторых элементов. Я зарегистрировал событие OnItemCommand сетки и внедрил его соответственно на стороне сервера. Мой ASPX код выглядит следующим образом: не

<telerik:RadGrid runat="server" ID="RadGrid1" AllowPaging="True" AllowSorting="True" 
    AutoGenerateColumns="False" GridLines="None" 
    OnItemCommand="RadGrid1_ItemCommand"> 
    <MasterTableView DataKeyNames="Id" ClientDataKeyNames="Id"> 
     <Columns> 
      <telerik:GridBoundColumn DataField="Firstname" HeaderText="Firstname" DataType="System.String"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="Lastname" HeaderText="Lastname" DataType="System.String"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="Age" HeaderText="Age" DataType="System.Int32"> 
      </telerik:GridBoundColumn> 
      <telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="DeleteColumn" 
       ButtonType="ImageButton"> 
      </telerik:GridButtonColumn> 
     </Columns> 
     <PagerStyle Mode="Slider" /> 
    </MasterTableView> 
    <ClientSettings> 
     <DataBinding SelectMethod="GetSampleData" Location="Webservice/GridData.svc" SortParameterType="String"> 
     </DataBinding> 
    </ClientSettings> 
</telerik:RadGrid> 

Однако при нажатии на соответствующую кнопку на сетке грести событие не уволили, в основном не постбэк к серверу делается. Решение, которое я нашел, это добавить «EnablePostBackOnRowClick=true» в ClientSettings, но это вызовет обратную передачу при каждом щелчке по строке, что действительно не требуется.

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

Thx

+0

Я не понимаю. Вы хотите, чтобы postback произошел или нет? Ваше описание противоречиво: «событие не запущено, в основном не выполняется обратная передача на сервер ... но это может вызвать обратную передачу при каждом нажатии на строку, что действительно не нужно» – Bryan

+0

Проблема в том, что если я включу «EnablePostBackOnRowClick», то обратная передача выполняется простым щелчком по произвольному месту в строке. Я хотел бы запустить обратную передачу только тогда, когда нажата одна из кнопок действия. – Juri

ответ

0

У меня была такая же проблема с элементами управления telerik. Я решил эту проблему, воссоздав Control с нуля с новым именем, а затем перестроил свою структуру.

Надеется, что это помогает

2

вам нужно обрабатывать клиент «OnCommand» событие, или более правильно использовать клиент «RowDataBound» команда. В команде RowDataBound вы можете найти свою кнопку rad и прикрепить к ней событие.

Единственный способ сделать это - обработать событие «onclicking» клиента с самой кнопки.

Пример связывания с OnCommand и Row DataBound:
<ClientSettings> <ClientEvents OnCommand="Grid_Command" OnRowDataBound="Grid_RowDataBound" /> </ClientSettings> затем в вашем JavaScript, завернутый в радиан кодового блока имеют следующие методы:

<script type="javascript"> 
function Grid_RowDataBound(sender, args) { 
    var item = args.get_item(); 
    var data = args.get_dataItem(); 
    var btn = $find('DeleteColumn'); 
    btn.add_clicking(delegate); // where delegate is the function you provide for the click 
    // ... // 
} 

`

1

Я понимаю, что это древний , но он по-прежнему показывает высокие результаты Google. Существует в настоящее время решение этой проблемы, возможно, другие, а также ...

Вы можете достичь постбэк с помощью колонки шаблона

<telerik:GridTemplateColumn UniqueName="myuniquename"> 
<ItemTemplate> 
    <telerik:RadButton ID="RadButton1" runat="server" ButtonType="StandardButton" AutoPostBack="true" CommandName="MyCommand" UseSubmitBehavior="false" Text="Button Text" /> 
</ItemTemplate> 
</telerik:GridTemplateColumn> 

Хотя я не уверен, что если вам нужен «UseSubmitBehavior» имущество.

0

RegisterWithScriptManager = "false" это может сработать.

 Смежные вопросы

  • Нет связанных вопросов^_^