This is a migrated thread and some comments may be shown as answers.

[Solved] ExtractValuesFromItem no longer extracting values when using EditFormSettings

1 Answer 170 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Delicious!
Top achievements
Rank 1
Delicious! asked on 03 Jun 2009, 05:43 PM
Calling ExtractValuesFromItem produces an empty dictionary when I utilize the RadGrid w/ EditFormSettings.  I need to set the values of the controls in my FormTemplate on the server, but I'm not able to as the dictionary is empty.  Is there a specific property I need to set on the grid to allow me to do this?
void drgGrid_ItemDataBound(object sender, GridItemEventArgs e) 
            if (e.Item is GridEditableItem && e.Item.IsInEditMode) 
            { 
                GridEditableItem item = (GridEditableItem)e.Item; 
                HybridDictionary extractedVals = new HybridDictionary(); 
                e.Item.OwnerTableView.ExtractValuesFromItem(extractedVals, item); 
            } 

Here's the markup of my Grid:

<cym:RadGrid ID="drgGrid" runat="server" DataSourceID="drgODS"
        <ClientSettings Selecting-AllowRowSelect="true" /> 
        <MasterTableView DataKeyNames="DrgID" AlternatingItemStyle-HorizontalAlign="Center" 
            ItemStyle-HorizontalAlign="Center" CommandItemDisplay="Top">             
            <Columns> 
                <rad:GridBoundColumn DataField="RV" Visible="false" ReadOnly="true"  
                    ForceExtractValue="Always" /> 
                <rad:GridBoundColumn DataField="ValidfromDate" HeaderText="Valid From"  
                    ForceExtractValue="Always" ReadOnly="true" Visible="false" />                 
                <rad:GridBoundColumn DataField="ValidThroughDate" HeaderText="Valid Through"  
                    ForceExtractValue="Always" ReadOnly="true" Visible="false" /> 
                <rad:GridBoundColumn DataField="DrgType" HeaderText="Type"  
                    ForceExtractValue="Always" ReadOnly="true" Visible="false" />          
                <rad:GridBoundColumn DataField="Description" HeaderText="Description" 
                    ForceExtractValue="Always" ReadOnly="true" Visible="false" />                     
                <rad:GridBoundColumn DataField="DrgCode" HeaderText="Code" ReadOnly="true"  
                    HeaderStyle-Width="100px" ForceExtractValue="Always" /> 
                <rad:GridBoundColumn DataField="Version" HeaderText="Version" ReadOnly="true"  
                    HeaderStyle-Width="90px" ForceExtractValue="Always" />                 
                <rad:GridTemplateColumn HeaderText="Type" SortExpression="DrgType" 
                    HeaderStyle-Width="70px"
                    <ItemTemplate> 
                        <%#Eval("DrgType") %> 
                    </ItemTemplate> 
                    <EditItemTemplate> 
                        <cym:RadComboBox ID="typeDdl" runat="server" /> 
                    </EditItemTemplate> 
                </rad:GridTemplateColumn>                                             
                <rad:GridTemplateColumn HeaderText="Description" UniqueName="Description" 
                    ItemStyle-HorizontalAlign="Left" HeaderStyle-Width="300px"
                    <ItemTemplate> 
                        <%#Eval("Description") %> 
                    </ItemTemplate> 
                    <EditItemTemplate> 
                        <asp:TextBox ID="descriptionTb" runat="server" /> 
                        <asp:RequiredFieldValidator ID="descriptionReqVldtr" runat="server" 
                            ControlToValidate="descriptionTb" ErrorMessage="* Required."  
                            Display="Dynamic" /> 
                    </EditItemTemplate> 
                </rad:GridTemplateColumn> 
                <rad:GridTemplateColumn HeaderText="Valid From" SortExpression="ValidfromDate"
                    <ItemTemplate> 
                        <%# DataBinder.Eval(Container.DataItem,  
                                "ValidfromDate", "{0:MM/dd/yyyy}") %>                         
                    </ItemTemplate> 
                    <EditItemTemplate> 
                        <rad:RadDatePicker ID="fromDateDp" runat="server"  
                            EnableEmbeddedSkins="false" Skin="Cymetrix" />                         
                        <asp:RequiredFieldValidator ID="fromDateReqVldtr" runat="server" 
                            ControlToValidate="fromDateDp" ErrorMessage="* Required."  
                            Display="Dynamic" /> 
                    </EditItemTemplate> 
                </rad:GridTemplateColumn>                 
                <rad:GridTemplateColumn HeaderText="Valid Through" SortExpression="ValidThroughDate"
                    <ItemTemplate> 
                        <%# DataBinder.Eval(Container.DataItem,  
                                "ValidThroughDate", "{0:MM/dd/yyyy}") %>                         
                    </ItemTemplate> 
                    <EditItemTemplate> 
                        <rad:RadDatePicker ID="throughDateDp" runat="server"  
                            EnableEmbeddedSkins="false" Skin="Cymetrix" />                         
                        <asp:CompareValidator ID="throughDateCmpVldtr" runat="server" 
                            ControlToValidate="throughDateDp" ControlToCompare="fromDateDp"  
                            Type="Date" Operator="GreaterThan" Display="Dynamic"     
                            ErrorMessage="Valid Through must be less than Valid From." />                     
                    </EditItemTemplate> 
                </rad:GridTemplateColumn>                 
                <rad:GridEditCommandColumn />                 
                <rad:GridButtonColumn ButtonType="LinkButton" Text="Remove" 
                    UniqueName="Remove" CommandName="Remove" ItemStyle-HorizontalAlign="Center"  
                    HeaderStyle-Width="60px" />                                                                     
            </Columns>         
            <EditFormSettings EditFormType="Template"
                <FormTemplate> 
                    <asp:Panel ID="codePnl" runat="server" CssClass="row"
                        <span class="prompt">Code</span> 
                        <div class="data"
                            <asp:TextBox ID="codeTb" runat="server" /> 
                            <asp:RequiredFieldValidator ID="codeReqVldtr" runat="server" 
                                ControlToValidate="codeTb" /> 
                        </div> 
                    </asp:Panel> 
                    <asp:Panel ID="versionPnl" runat="server" CssClass="row"
                        <span class="prompt">Version</span> 
                        <div class="data"
                            <asp:TextBox ID="versionTb" runat="server" MaxLength="3" /> 
                            <asp:RequiredFieldValidator ID="versionReqVldtr" runat="server" 
                                ControlToValidate="versionTb" /> 
                        </div> 
                    </asp:Panel>                     
                </FormTemplate> 
            </EditFormSettings>                                                   
        </MasterTableView>                 
    </cym:RadGrid> 

1 Answer, 1 is accepted

Sort by
0
Daniel
Telerik team
answered on 08 Jun 2009, 07:46 AM
Hello Ohrange,

I recommend you examine the following sections of the Custom edit forms help article:
  • FormTemplate -> Setting properties without the usage of binding expressions
  • FormTemplate -> Binding to RadGrid Item
Let me know if you need more information.

Kind regards,
Daniel
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
Grid
Asked by
Delicious!
Top achievements
Rank 1
Answers by
Daniel
Telerik team
Share this question
or