How to generate JSON for changed rows from gridPanel when are button is clicked excluding the columns

  1. #1

    How to generate JSON for changed rows from gridPanel when are button is clicked excluding the columns

    HI

    How to generate JSON for changed rows from gridPanel when are button is clicked excluding the columns


    In a Page, i have a gridpanel and for this grid there is column (Column3 and column4), which has "<br/>" between the value because

    of the value are showing in different rows, if i change the Remarks column and clicked on Save button then following

    error is displayed "A potentially dangerous Request.Form value was detected from the client (parameter="...3":"Actual<br/><br/>"


    here my question is, when i clicked on save button json should exclude Column3 and column4, but need to include
    column1,column2 and Column5 ....How can i achieve this

    Please find the code


    <%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" EnableEventValidation="false" %>
    
    <%@ Import Namespace="System.Xml" %>
    <%@ Import Namespace="System.Collections.Generic" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="Ext.Net" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server"> 
        /// <summary>
        /// Method to save the thresholds valeus.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnSaveMilestoneComments1_Click(object sender, DirectEventArgs e)
        {
            X.Msg.Notify("Non Sender:", "Non Sender:").Show();
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
    
            if (!X.IsAjaxRequest)
            {
                DataTable dt = CustomColumns();
                var filteredPrograms = from projectDetails in dt.AsEnumerable()
                                       select new
                                       {
                                           Column1 = projectDetails.Field<string>("Column1"),
                                           Column2 = projectDetails.Field<string>("Column2"), 
    
                                           Column3 = (projectDetails.Field<string>("Column3")),
                                           Column4 = (projectDetails.Field<string>("Column4")),
    
                                           Value_H = projectDetails.Field<string>("Value_H"),
                                           Value_BCHealth = projectDetails.Field<string>("Value_BCHealth"),
                                           Value_FCHealth = projectDetails.Field<string>("Value_FCHealth")
    
                                           ,
                                           ValueTypeSave = projectDetails.Field<string>("ValueTypeSave")
                                       };
    
    
    
                storeEditMetrics.DataSource = filteredPrograms;
                storeEditMetrics.DataBind();
            }
    
    
        }
    
        internal static DataTable CustomColumns()
        {
            System.Data.DataTable table1 = new System.Data.DataTable();
    
    
            table1.Columns.Add("Column1", typeof(string));
            table1.Columns.Add("Column2", typeof(string));
            table1.Columns.Add("Column3", typeof(string));
            table1.Columns.Add("Column4", typeof(string));
            table1.Columns.Add("Value_H", typeof(string));
            table1.Columns.Add("Value_BCHealth", typeof(string));
            table1.Columns.Add("Value_FCHealth", typeof(string));
            table1.Columns.Add("ValueTypeSave", typeof(string));
    
    
            //HttpServerUtility obj = new HttpServerUtility();
            for (int i = 0; i < 8; i++)
            {
                DataRow dr = table1.NewRow();
    
                dr["Column1"] = "Header1 " + i.ToString();
                dr["Column2"] = "ks ";
                dr["Column3"] = "Actual<br/><br/>Plan";
                if (i < 2)
                {
    
                    dr["Column4"] = "0.4<br/><br/>";
                }
                else if (i < 6)
                {
                    dr["Column4"] = "<br/><br/>0.4";
                }
                else
                {
                    dr["Column4"] = "0.4<br/><br/>0.4";
                }
                dr["Value_H"] = "GR";
                dr["Value_BCHealth"] = "#d7d7d7";
                dr["Value_FCHealth"] = "#000000";
    
    
                dr["ValueTypeSave"] = "Actual&#60;br/&#62;&#60;br&#62;Plan";
    
    
                table1.Rows.Add(dr);
            }
            return table1;
        }
         
    
        /// <summary>
        /// AP3- 625 : Save Milestone comments details
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        //[ValidateInput(false)]
        protected void BtnSaveMilestoneComments_Click(object sender, DirectEventArgs e)
        {
            string strParameterJson = e.ExtraParams["parameter"]; 
        }
    </script>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Submit MultiSelect Values - Ext.NET Examples</title>
    </head>
    <body>
        <form id="Form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" Namespace="" />
    
            <table>
                <tr>
                    <td style="width: 20px"></td>
                    <td>
                        <ext:GridPanel ID="grdPnlEditMetrics" runat="server" EnableColumnHide="false" EnableColumnMove="false" ButtonAlign="Center"
                            Border="true" DisabledCls="DisabledPanelCss" Height="300" Width="1200" AutoScroll="true" EnableColumnResize="false" Namespace="app"
                            EmptyText="<%$ Resources:WebResource,GeneralMsg_NoRecordsFound %>" ValidateRequestMode="Disabled">
                            <Store>
                                <ext:Store ID="storeEditMetrics" runat="server">
                                    <Model>
                                        <ext:Model ID="Model3" runat="server">
                                            <Fields>
                                                <ext:ModelField Name="CommentID" Type="String" /> 
                                                <ext:ModelField Name="Column1" Type="String" />
                                                <ext:ModelField Name="Column2" Type="String" />
                                                <ext:ModelField Name="Column3" Type="String" /> 
                                                <ext:ModelField Name="Column4" />
                                                <ext:ModelField Name="Value_H" />
                                                <ext:ModelField Name="Value_FCHealth" />
                                                <ext:ModelField Name="Value_BCHealth" />
                                                <ext:ModelField Name="Comments" Type="String" />  
                                            </Fields>
                                        </ext:Model>
                                    </Model>
                                </ext:Store>
                            </Store>
                            <View>
                                <ext:GridView ID="grdViewMetrics" runat="server" TrackOver="false" StripeRows="false" MarkDirty="false" />
                            </View>
                            <Plugins>
                                <ext:CellEditing ID="rEditorEditMetrics" runat="server" ClicksToMoveEditor="1">
                                </ext:CellEditing>
                            </Plugins>
                            <ColumnModel>
                                <Columns>
                                    <ext:Column runat="server" DataIndex="Column1" Text="Metric Name" Width="200" Sortable="false" MenuDisabled="true"
                                        Resizable="false" ID="GrdPnlTierDetails_Column1" Align="Left"> 
                                    </ext:Column>
                                    <ext:Column runat="server" DataIndex="Column2" Text="Column2" Width="100" Sortable="false" MenuDisabled="true"
                                        Resizable="false" ID="GrdPnlTierDetails_Column2" Align="Left"> 
                                    </ext:Column>
                                    <ext:Column runat="server" DataIndex="Column3" Text="Column3" Width="100" Sortable="false" MenuDisabled="true"
                                        Resizable="false" ID="GrdPnlTierDetails_ValueType" Align="Right"> 
                                    </ext:Column>
                                    <ext:Column runat="server" DataIndex="Column4" Text="Column4" Width="100" Sortable="false" MenuDisabled="true"
                                        Resizable="false" ID="GrdPnlTierDetails_Value" Align="Right"> 
                                    </ext:Column>
                                    <ext:Column runat="server" DataIndex="Comments" Text="Remarks (500 char max)-Editable" Width="300" Sortable="false"
                                        MenuDisabled="true" Resizable="false" Cls="text-align:left;" ID="GrdPnlTierDetails_Comments">
                                        <Editor>
                                            <ext:TextArea ID="TxtTierDetailsComments" runat="server" MaxLength="500" Grow="true" GrowMin="63"
                                                GrowMax="150" MaskRe="[^<>]" StyleSpec="position:absolute;">
                                            </ext:TextArea>
                                        </Editor>
                                        <Renderer Fn="CommentsColumn_Render" />
                                    </ext:Column>
                                </Columns>
                            </ColumnModel>
                        </ext:GridPanel>
                    </td>
                </tr>
                <tr>
                    <td colspan="2" style="vertical-align: middle; text-align: center">
                        <ext:Button ID="BtnSaveMilestoneComments" runat="server" Text="Save" Icon="Disk">
                            <DirectEvents>
                                <Click OnEvent="BtnSaveMilestoneComments_Click" Delay="200" CleanRequest="true">
                                    <ExtraParams>
                                        <ext:Parameter Name="parameter" Value="Ext.encode(#{grdPnlEditMetrics}.getRowsValues({dirtyRowsOnly : true}))"
                                            Mode="Raw" />
                                    </ExtraParams>
                                </Click>
                            </DirectEvents>
                        </ext:Button> 
                    </td>
                </tr>
            </table>
    
    
    
        </form>
    
        <script type="text/javascript"> 
            
            var CommentsColumn_Render = function (value, cell, record, row, col, store) {
    
                var text = value;
                if (record.data['Comments'] == "" || record.data['Comments'] == null) {
    
    
                    text = value;
                }
                else {
                    text = text.replace(/[<]/g, '');
                    text = text.replace(/[>]/g, '');
                    record.data['Comments'] = text;
                }
                return text;
            }
        </script>
    </body>
    </html>
  2. #2

    Got the solution

    HI All


    i got the solution for the above fix,

    Instead of fetching the from Database or like below

    if (i < 2)
                {
    
                    dr["Column4"] = "0.4<br/><br/>";
                }
                else if (i < 6)
                {
                    dr["Column4"] = "<br/><br/>0.4";
                }
                else
                {
                    dr["Column4"] = "0.4<br/><br/>0.4";
                }
    While rendering we can give break , like below

    var TierDetails_Health_Render = function (columnValue, columnValueCSS, record, rowIndex) {
    
                columnValue = record.data['Value']; 
                var cssString = "background-color:" + record.data.Value_BCHealth + ";color:" + record.data.Value_FCHealth + ";padding:4px;margin:4px;height:50px;width:90%;";
                columnValueCSS.style = cssString;
    
                columnValue = record.data.ValuePlan + "</br/></br/>" + record.data.ValueActual;
    
                return columnValue;
            };
    Last edited by Daniil; Aug 20, 2015 at 5:53 PM. Reason: Please use [CODE] tags

Similar Threads

  1. [CLOSED] Convert json to XML Gridpanel rows values
    By matrixwebtech in forum 2.x Legacy Premium Help
    Replies: 4
    Last Post: Sep 04, 2014, 6:37 PM
  2. Replies: 0
    Last Post: Feb 21, 2013, 3:29 AM
  3. Replies: 7
    Last Post: Mar 21, 2012, 10:24 AM
  4. gridpanel columns and rows
    By gpcontreras in forum 1.x Help
    Replies: 1
    Last Post: Feb 02, 2010, 10:26 PM
  5. Replies: 0
    Last Post: Aug 05, 2009, 9:48 AM

Tags for this Thread

Posting Permissions