В приведенном ниже коде у меня есть radgrid, который я хочу вставить, удалить, обновить в сетке. Но я не знаю, нужно ли получать значения и размещать код, потому что я новичок в элементах управления telerik.
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>
С#
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);
}
}
У вас есть обработчик вставки в вашем 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
protected void RadGrid1_DeleteCommand(object source, GridInsertedEventArgs e)
{
//...ADD CODE TO DELETE FROM YOUR DB HERE!
...
Не забудьте переустановить сетку, чтобы увидеть результаты. RadGrid1.DataBind();
Другой вариант - определить операции обновления/удаления/вставки в источнике данных (например, элемент управления SqlDataSource, он имеет соответствующие команды SQL в качестве свойств и может иметь параметры) и использовать встроенные операции CRUD: http://demos. telerik.com/aspnet-ajax/grid/examples/data-editing/automatic-crud-operations/defaultcs.aspx