I use the following method to build a table of all of the current values in a Gridview after any edits may have occured...
private DataTable BuildRenameTableFromGrid()
{
int cnt = rgRuleReplace.Items.Count;
DataTable dt = GetEmptyRenameTable();
for (int i = 0; i < cnt; i++)
{
GridEditableItem editedItem = (GridEditableItem)rgRuleReplace.EditItems[0];
string val1 = editedItem.OwnerTableView.DataKeyValues[i]["replace_addto"].ToString();
string val2 = editedItem.OwnerTableView.DataKeyValues[i]["column_name"].ToString();
string val3 = editedItem.OwnerTableView.DataKeyValues[i]["new_value"].ToString();
DataRow row;
row = dt.NewRow();
row["replace_addto"] = val1;
row["column_name"] = val2;
row["new_value"] = val3;
dt.Rows.Add(row);
}
return dt;
}
Here is the gridview...
<Telerik:RadGrid ID="rgRuleReplace" runat="server"
onitemdatabound="rgRuleReplace_ItemDataBound"
EnableLinqExpressions="False" Width="100%" AllowPaging="True"
PageSize="10" DataMember="reg_rule_renames" GridLines="None"
onitemcommand="rgRuleReplace_ItemCommand"
onprerender="rgRuleReplace_PreRender1"
onneeddatasource="rgRuleReplace_NeedDataSource1"
EnableViewState="true">
<MasterTableView DataKeyNames="replace_addto,column_name,new_value" CommandItemDisplay="Top" AutoGenerateColumns="False" HeaderStyle-Height="10px" EditMode="InPlace" DataMember="reg_rule_renames" HeaderStyle-CssClass="gridHeader" AllowAutomaticDeletes="False" AllowAutomaticInserts="False" AllowAutomaticUpdates="False" >
<Columns>
<Telerik:GridDropDownColumn UniqueName="replace_addto" DataField="replace_addto" HeaderText="Comparison Item" ListDataMember="replace_addto" ListTextField="replace_addto" ListValueField="replace_addto"/>
<Telerik:GridDropDownColumn UniqueName="column_name" DataField="column_name" HeaderText="Register Column" ListDataMember="column_names" ListTextField="column_name" ListValueField="column_name"/>
<Telerik:GridBoundColumn UniqueName="new_value" DataField="new_value" DataType="System.String" HeaderText="New Value" />
<%--<Telerik:GridEditCommandColumn ButtonType="LinkButton" EditText="Edit" UniqueName="editbutton" />--%>
</Columns>
</MasterTableView>
<ClientSettings>
<Selecting AllowRowSelect="True" />
</ClientSettings>
</Telerik:RadGrid>
But regardless of what the value of the edited column is the only value retrieved is the original value of the column before it was edited. Any ideas what I'm missing?
private DataTable BuildRenameTableFromGrid()
{
int cnt = rgRuleReplace.Items.Count;
DataTable dt = GetEmptyRenameTable();
for (int i = 0; i < cnt; i++)
{
GridEditableItem editedItem = (GridEditableItem)rgRuleReplace.EditItems[0];
string val1 = editedItem.OwnerTableView.DataKeyValues[i]["replace_addto"].ToString();
string val2 = editedItem.OwnerTableView.DataKeyValues[i]["column_name"].ToString();
string val3 = editedItem.OwnerTableView.DataKeyValues[i]["new_value"].ToString();
DataRow row;
row = dt.NewRow();
row["replace_addto"] = val1;
row["column_name"] = val2;
row["new_value"] = val3;
dt.Rows.Add(row);
}
return dt;
}
Here is the gridview...
<Telerik:RadGrid ID="rgRuleReplace" runat="server"
onitemdatabound="rgRuleReplace_ItemDataBound"
EnableLinqExpressions="False" Width="100%" AllowPaging="True"
PageSize="10" DataMember="reg_rule_renames" GridLines="None"
onitemcommand="rgRuleReplace_ItemCommand"
onprerender="rgRuleReplace_PreRender1"
onneeddatasource="rgRuleReplace_NeedDataSource1"
EnableViewState="true">
<MasterTableView DataKeyNames="replace_addto,column_name,new_value" CommandItemDisplay="Top" AutoGenerateColumns="False" HeaderStyle-Height="10px" EditMode="InPlace" DataMember="reg_rule_renames" HeaderStyle-CssClass="gridHeader" AllowAutomaticDeletes="False" AllowAutomaticInserts="False" AllowAutomaticUpdates="False" >
<Columns>
<Telerik:GridDropDownColumn UniqueName="replace_addto" DataField="replace_addto" HeaderText="Comparison Item" ListDataMember="replace_addto" ListTextField="replace_addto" ListValueField="replace_addto"/>
<Telerik:GridDropDownColumn UniqueName="column_name" DataField="column_name" HeaderText="Register Column" ListDataMember="column_names" ListTextField="column_name" ListValueField="column_name"/>
<Telerik:GridBoundColumn UniqueName="new_value" DataField="new_value" DataType="System.String" HeaderText="New Value" />
<%--<Telerik:GridEditCommandColumn ButtonType="LinkButton" EditText="Edit" UniqueName="editbutton" />--%>
</Columns>
</MasterTableView>
<ClientSettings>
<Selecting AllowRowSelect="True" />
</ClientSettings>
</Telerik:RadGrid>
But regardless of what the value of the edited column is the only value retrieved is the original value of the column before it was edited. Any ideas what I'm missing?