Jul 02, 2015, 6:28 PM
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
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<br/><br>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>