Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net RadGrid就地编辑-触发更新命令时无值_Asp.net_Telerik_Telerik Grid - Fatal编程技术网

Asp.net RadGrid就地编辑-触发更新命令时无值

Asp.net RadGrid就地编辑-触发更新命令时无值,asp.net,telerik,telerik-grid,Asp.net,Telerik,Telerik Grid,我需要使用Telerik RadGrid创建类似Excel的控件—列和行的动态大小,在线编辑。我的问题是,当我尝试对已编辑的行调用update命令作为返回时,它只有旧值 我的RadGrid控件: <telerik:RadGrid runat="server" ID="rgDataSheet" AutoGenerateColumns="true" AllowSorting="false" AllowAutomaticDeletes="false" AllowAutomaticInserts=

我需要使用Telerik RadGrid创建类似Excel的控件—列和行的动态大小,在线编辑。我的问题是,当我尝试对已编辑的行调用update命令作为返回时,它只有旧值

我的RadGrid控件:

<telerik:RadGrid runat="server" ID="rgDataSheet" AutoGenerateColumns="true" AllowSorting="false" AllowAutomaticDeletes="false" AllowAutomaticInserts="false" AllowAutomaticUpdates="false"
    AllowMultiRowEdit="true" AllowPaging="false" EnableViewState="false" OnNeedDataSource="HandlerGridOnNeedDataSource"
    OnItemUpdated="GridItemUpdated" OnInsertCommand="GridInsertCommand" OnUpdateCommand="GridUpdateCommand"
    OnCancelCommand="GridCancelCommand">
    <MasterTableView runat="server" EditMode="InPlace" NoMasterRecordsText="brak rekordów"
        ShowHeadersWhenNoRecords="true" AllowCustomSorting="false" EnableColumnsViewState="false"
        AllowSorting="false" AllowFilteringByColumn="false" TableLayout="Fixed">
        <Columns>
            <telerik:GridEditCommandColumn UpdateText="Update" EditText="Edit" CancelText="Cancel" />
        </Columns>
    </MasterTableView>
    <ClientSettings>
        <ClientEvents OnRowClick="RowClick" />
    </ClientSettings>
</telerik:RadGrid>
我的活动:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            List<string> datakeynames = new List<string>();

            dataSet = new DataSet();
            dataSet.Tables.Add(new DataTable());
            dataSet.Tables[0].Columns.Add("col0"); 
            dataSet.Tables[0].Columns.Add("col1"); 
            dataSet.Tables[0].Columns.Add("col2"); 
            dataSet.Tables[0].Columns.Add("col3"); 
            dataSet.Tables[0].Columns.Add("col4"); 
            dataSet.Tables[0].Columns.Add("col5"); 

            dataSet.Tables[0].Rows.Add(new object[] { "1", "11", "a", "q", "z", "n" });
            dataSet.Tables[0].Rows.Add(new object[] { "2", "12", "s", "w", "x", "m" });
            dataSet.Tables[0].Rows.Add(new object[] { "3", "13", "d", "e", "c", "," });
            dataSet.Tables[0].Rows.Add(new object[] { "4", "14", "f", "r", "v", "h" });
            dataSet.Tables[0].Rows.Add(new object[] { "5", "15", "g", "t", "b", "y" });
            ViewState["dataSet"] = dataSet;
            rgDataSheet.MasterTableView.DataKeyNames = new string[] { "col0", "col1", "col2", "col3", "col4", "col5" };
        }
        else
        {
            rgDataSheet.Rebind();
        }
    }

protected void HandlerGridOnNeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        dataSet = (DataSet)ViewState["dataSet"];
        ((RadGrid)sender).DataSource = dataSet;
    }

protected void GridUpdateCommand(object source, GridCommandEventArgs e)
    {
        //here I try access changed values, in example -
        //GridEditableItem editedItem = e.Item as GridEditableItem;
        //editedItem.OwnerTableView.DataKeyValues -> it contains always old values
    }

请从页面加载事件中删除以下代码。不需要Radgrid自动管理此事件。更多信息。请查看下面的链接

else
    {
        rgDataSheet.Rebind();
    }