2014-11-12 3 views
1

В приведенном ниже коде у меня есть radgrid, который я хочу вставить, удалить, обновить в сетке. Но я не знаю, нужно ли получать значения и размещать код, потому что я новичок в элементах управления telerik.Обновление вставки сетки Telerik с использованием asp.net

ASP:

<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" AllowAutomaticUpdates="True" AllowAutomaticInserts="True" 
     AllowAutomaticDeletes="true" AllowSorting="true" OnItemCreated="RadGrid1_ItemCreated" 
     OnItemInserted="RadGrid1_ItemInserted" OnPreRender="RadGrid1_PreRender" > 
      <PagerStyle Mode="NextPrevAndNumeric" /> 
     <MasterTableView AutoGenerateColumns="False" 
      DataKeyNames="EmployeeTypeID" CommandItemDisplay="Top"> 
      <Columns> 
       <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> 
       </telerik:GridEditCommandColumn> 
       <telerik:GridBoundColumn DataField="EmployeeTypeID" HeaderText="EmployeeTypeID" SortExpression="EmployeeTypeID" 
        UniqueName="EmployeeTypeID" Visible="false" > 
       </telerik:GridBoundColumn> 
       <telerik:GridBoundColumn DataField="EmployeeType" HeaderText="EmployeeType" SortExpression="EmployeeType" 
        UniqueName="EmployeeType"> 
       </telerik:GridBoundColumn> 
       <telerik:GridBoundColumn DataField="CostPerDay" HeaderText="CostPerDay" SortExpression="CostPerDay" 
        UniqueName="CostPerDay"> 
       </telerik:GridBoundColumn> 
       <telerik:GridBoundColumn DataField="WorkingHours" HeaderText="WorkingHours" SortExpression="WorkingHours" 
        UniqueName="WorkingHours"> 
       </telerik:GridBoundColumn> 

       <telerik:GridButtonColumn Text="Delete" CommandName="Delete" ButtonType="ImageButton" /> 
      </Columns> 
      <EditFormSettings> 
       <EditColumn ButtonType="ImageButton" /> 
      </EditFormSettings> 
     </MasterTableView> 
      </telerik:RadGrid> 

C#

protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e) 
     { 
      if (e.Item is GridEditableItem && e.Item.IsInEditMode) 
      { 
       if (!(e.Item is GridEditFormInsertItem)) 
       { 
        GridEditableItem item = e.Item as GridEditableItem; 
        GridEditManager manager = item.EditManager; 
        GridTextBoxColumnEditor editor = manager.GetColumnEditor("EmployeeTypeID") as GridTextBoxColumnEditor; 
        editor.TextBoxControl.Enabled = false; 
       } 
      } 
     } 
     protected void RadGrid1_ItemInserted(object source, GridInsertedEventArgs e) 
     { 
      if (e.Exception != null) 
      { 

       e.ExceptionHandled = true; 
       SetMessage("Employee cannot be inserted. Reason: " + e.Exception.Message); 

      } 
      else 
      { 
       SetMessage("New Employee is inserted!"); 
      } 
     } 
     private void DisplayMessage(string text) 
     { 
      RadGrid1.Controls.Add(new LiteralControl(string.Format("<span style='color:red'>{0}</span>", text))); 
     } 

     private void SetMessage(string message) 
     { 
      gridMessage = message; 
     } 

     private string gridMessage = null; 

     protected void RadGrid1_PreRender(object sender, EventArgs e) 
     { 
      if (!string.IsNullOrEmpty(gridMessage)) 
      { 
       DisplayMessage(gridMessage); 
      } 
     } 
+0

Я не уверен, что я точно следую вашей проблеме. Вы не видите поля редактирования? Не отображается ли кнопка удаления? – paqogomez

+0

@paqogomez yes ic a see редактировать и удалять, но я не знаю, где разместить код редактирования и удалить код в коде – Developer

ответ

1

У вас есть обработчик команд вставки в вашем ASPX, но вам не хватает удаления обработчика.

<telerik:RadGrid ID="RadGrid1" 
       runat="server" 
       AllowPaging="True" 
       OnDeleteCommand="RadGrid1_DeleteCommand" 
       ... 

Вставки и удаления в вашу сетку происходят автоматически, но они не происходят автоматически в вашей базе данных.

protected void RadGrid1_ItemInserted(object source, GridInsertedEventArgs e) 
{ 
    //...ADD CODE TO INSERT TO YOUR DB HERE! 
    if (e.Exception != null) 
    { 
    ... 

Telerik's edit examples

protected void RadGrid1_DeleteCommand(object source, GridInsertedEventArgs e) 
{ 
    //...ADD CODE TO DELETE FROM YOUR DB HERE! 
    ... 

Telerik's deleting example

Не забудьте пересвязать сетку, чтобы увидеть результаты. RadGrid1.DataBind();

0

Другой вариант заключается в определении обновления/удаления операции/вставки в источнике данных (например, управление SqlDataSource, он имеет соответствующие команды SQL в качестве свойств, и они могут иметь параметры) и использовать встроенный в CRUD операций: http://demos.telerik.com/aspnet-ajax/grid/examples/data-editing/automatic-crud-operations/defaultcs.aspx

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