【问题标题】:Telerik grid insert update using asp.netTelerik 网格插入更新使用 asp.net
【发布时间】:2014-11-12 15:06:48
【问题描述】:

在下面的代码中,我有 radgrid,我想在网格中插入、删除、更新。但我不知道是否要获取值并放置代码,因为我是 Telerik 控件的新手。

平均售价:

<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);
            }
        }

【问题讨论】:

  • 我不确定我是否完全了解您的问题。您没有看到编辑字段吗?删除按钮没有出现吗?
  • @paqogomez 是的,我可以看到编辑和删除,但我不知道在哪里放置编辑代码和删除代码中的代码

标签: c# asp.net telerik


【解决方案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();

【讨论】:

    【解决方案2】:

    另一种选择是在数据源中定义更新/删除/插入操作(例如,SqlDataSource 控件,它具有适当的 SQL 命令作为属性并且它们可以具有参数)并使用内置的 CRUD 操作:http://demos.telerik.com/aspnet-ajax/grid/examples/data-editing/automatic-crud-operations/defaultcs.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多