Hello,
I am trying to upgrade from, I believe, Q3 2010 to the latest version Q1 2014. I have made everything work except one place where I have the grid in edit mode with a checkbox column wired to auto post back. When I click on the checkbox, the grid disappears. I have created a small test project to replicate this behavior and hoping you guys can help me resolve this issue. This scenario is working just fine with the old version.
Below is the test code I have created to replicate this issue.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridTest.aspx.cs" Inherits="RadGridTest.GridTest" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<h1> Rad Grid Test</h1>
<hr/>
<br /><br />
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns ="false" AllowMultiRowEdit="true" OnItemCreated="RadGrid1_ItemCreated" OnPreRender="RadGrid1_PreRender">
<MasterTableView EditMode="InPlace" DataKeyNames="AuditId, CheckId">
<Columns>
<telerik:GridBoundColumn UniqueName="AuditId" HeaderText="AuditId" DataField="AuditId" ReadOnly="true" Display="false" />
<telerik:GridBoundColumn UniqueName="CheckId" HeaderText="CheckId" DataField="CheckId" ReadOnly="true" Display="false" />
<telerik:GridCheckBoxColumn UniqueName="CompletionStatus" HeaderText="Status" DataField="CompletionStatus"/>
<telerik:GridBoundColumn UniqueName="Check" HeaderText="Check" DataField="Check" ReadOnly="true" />
<telerik:GridBoundColumn UniqueName="Comments" HeaderText="Comments (if any)" DataField="Comments"/>
</Columns>
</MasterTableView>
</telerik:RadGrid>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
namespace RadGridTest
{
public partial class GridTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var audit = new Audit();
RadGrid1.DataSource = audit.Checks;
}
}
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
CheckBox chkbox = (CheckBox)item["CompletionStatus"].Controls[0];
chkbox.AutoPostBack = true;
chkbox.CheckedChanged += new EventHandler(chkbox_CheckedChanged);
}
}
void chkbox_CheckedChanged(object sender, EventArgs e)
{
}
protected void RadGrid1_PreRender(object sender, EventArgs e)
{
RadGrid grd = (RadGrid)sender;
foreach (GridItem item in grd.MasterTableView.Items)
{
if (item is GridEditableItem)
{
GridEditableItem editableItem = item as GridDataItem;
editableItem.Edit = true;
}
}
grd.Rebind();
}
}
public class Audit
{
public int AuditId { get; set; }
public int CheckId { get; set; }
public bool CompletionStatus { get; set; }
public string Check { get; set; }
public string Comments { get; set; }
public List<Audit> Checks
{
get
{
var lst = new List<Audit>();
lst.Add(new Audit { AuditId = 1, CheckId = 1, CompletionStatus = false, Check = "Test1" });
lst.Add(new Audit { AuditId = 1, CheckId = 2, CompletionStatus = false, Check = "Test2" });
lst.Add(new Audit { AuditId = 1, CheckId = 3, CompletionStatus = false, Check = "Test3" });
return lst;
}
}
}
}
Thanks,
Zafar
I am trying to upgrade from, I believe, Q3 2010 to the latest version Q1 2014. I have made everything work except one place where I have the grid in edit mode with a checkbox column wired to auto post back. When I click on the checkbox, the grid disappears. I have created a small test project to replicate this behavior and hoping you guys can help me resolve this issue. This scenario is working just fine with the old version.
Below is the test code I have created to replicate this issue.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridTest.aspx.cs" Inherits="RadGridTest.GridTest" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<h1> Rad Grid Test</h1>
<hr/>
<br /><br />
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns ="false" AllowMultiRowEdit="true" OnItemCreated="RadGrid1_ItemCreated" OnPreRender="RadGrid1_PreRender">
<MasterTableView EditMode="InPlace" DataKeyNames="AuditId, CheckId">
<Columns>
<telerik:GridBoundColumn UniqueName="AuditId" HeaderText="AuditId" DataField="AuditId" ReadOnly="true" Display="false" />
<telerik:GridBoundColumn UniqueName="CheckId" HeaderText="CheckId" DataField="CheckId" ReadOnly="true" Display="false" />
<telerik:GridCheckBoxColumn UniqueName="CompletionStatus" HeaderText="Status" DataField="CompletionStatus"/>
<telerik:GridBoundColumn UniqueName="Check" HeaderText="Check" DataField="Check" ReadOnly="true" />
<telerik:GridBoundColumn UniqueName="Comments" HeaderText="Comments (if any)" DataField="Comments"/>
</Columns>
</MasterTableView>
</telerik:RadGrid>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
namespace RadGridTest
{
public partial class GridTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var audit = new Audit();
RadGrid1.DataSource = audit.Checks;
}
}
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
CheckBox chkbox = (CheckBox)item["CompletionStatus"].Controls[0];
chkbox.AutoPostBack = true;
chkbox.CheckedChanged += new EventHandler(chkbox_CheckedChanged);
}
}
void chkbox_CheckedChanged(object sender, EventArgs e)
{
}
protected void RadGrid1_PreRender(object sender, EventArgs e)
{
RadGrid grd = (RadGrid)sender;
foreach (GridItem item in grd.MasterTableView.Items)
{
if (item is GridEditableItem)
{
GridEditableItem editableItem = item as GridDataItem;
editableItem.Edit = true;
}
}
grd.Rebind();
}
}
public class Audit
{
public int AuditId { get; set; }
public int CheckId { get; set; }
public bool CompletionStatus { get; set; }
public string Check { get; set; }
public string Comments { get; set; }
public List<Audit> Checks
{
get
{
var lst = new List<Audit>();
lst.Add(new Audit { AuditId = 1, CheckId = 1, CompletionStatus = false, Check = "Test1" });
lst.Add(new Audit { AuditId = 1, CheckId = 2, CompletionStatus = false, Check = "Test2" });
lst.Add(new Audit { AuditId = 1, CheckId = 3, CompletionStatus = false, Check = "Test3" });
return lst;
}
}
}
}
Thanks,
Zafar