我在编辑表单中有一个radgrid。我绑定了itemdatabound上的radgrid。
int id= Convert.ToInt32(editForm.GetDataKeyValue("ID").ToString());
RadGrid SummaryGrid = (RadGrid)item.FindControl("SummaryGrid");
SummaryGrid.DataSource = spObj.Sp_GetProjectDetails(id);
SummaryGrid.Visible = true;
SummaryGrid.Enabled = true;
SummaryGrid.DataBind();
问题是我只能编辑网格中的最后一行。我能够看到数据绑定到最后一行的内部网格。对于所有其他行,我得到以下错误。
“从DataSource中提取DataKeyValues时出现问题。请确保正确指定了DataKeyNames,并且DataSource中存在指定的所有字段。”
我的网格内编辑:
<telerik:RadGrid ID="SummaryGrid" runat="server" AllowPaging="True" PageSize="50" AutoGenerateColumns="true" Visible="true"
AllowMultiRowSelection="true" AllowSorting="true" Skin="Hay" Width ="500px" >
<MasterTableView DataKeyNames="ProjectID" CommandItemDisplay="Top" TableLayout="Fixed" Caption ="Position-Specific Network + Activity Code Totals" Font-Bold="true" Font-Size="Small" Font-Names ="Ericsson Capital TT" >
<PagerStyle Mode="NumericPages" Position="Top"></PagerStyle>
<CommandItemSettings ShowAddNewRecordButton="false"/>
</MasterTableView></telerik:RadGrid>
</telerik:RadAjaxPanel>
这个问题阻碍了开发。有人建议对此有任何帮助吗?任何帮助/想法都受到高度赞赏。
由于
答案 0 :(得分:0)
int id= Convert.ToInt32(editForm.GetDataKeyValue("ID").ToString());
这应该使用ProjectID而不是ID。 ID不是您在MasterTableView
中指定的数据密钥。