hello
i have the following problem
i have a radgrid which is totally builded in code behind because it must be bound to different data types
you can see a preview in this page
the user may update a record or insert a new one
when entering in edit mode, some rows in the edit form should be hidden based on the selection of the main item (the INST_MODEL value that cannot be changed in edit mode)
following is the codebehind of the ascx (i omit fo simplicity the part of code that builds customedittemplate)
so, when selecting an item with INST_MODEL = GA_CP-LI-COR LI-7200, for example, the rows with INST_SA[...] labels should be hidden
how can i do it?!
thanks a lot
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;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Collections;
using System.Data;
using System.Collections.Specialized;
using System.Web.UI.HtmlControls;
namespace SitefinityWebApp.EcoControls
{
public partial class BADMView : System.Web.UI.UserControl
{
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["connMulti"].ConnectionString;
BadmVar bv = null;
int idVar = 1000;
int idSite = 0;
int insertUserId = 0;
public string I_MODEL="";
protected void Page_Load(object sender, EventArgs e)
{
Session["idutente"] = 127;
Session["usname"] = "database";
if (Session["idutente"] != null && Session["idutente"].ToString()!="")
{
insertUserId = int.Parse(Session["idutente"].ToString());
}
}
protected void Page_Init(object sender, EventArgs e)
{
/***********************/
//if (Request["idvar"] != null && Request["idvar"].ToString() != "0")
if (Request["idsite"] != null && Request["idsite"].ToString() != "")
{
//Response.Write("idvar:: " + Request["idvar"].ToString());
//idVar = int.Parse(Request["idvar"].ToString());
//pickUpVars.SelectedValue = Request["idvar"].ToString();
idSite = int.Parse(Request["idsite"].ToString());
sitesDDL.SelectedValue = Request["idsite"].ToString();
}
else
{
return;
}
//1. Get theBadm Variable Infos
SqlConnection cn = new SqlConnection();
cn.ConnectionString = conn;
cn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "...";
//2. Build the grid
RadGrid grid = new RadGrid();
grid.ID = "instGrid";
grid.DataSourceID = "sqlInst";
grid.PageSize = 15;
grid.AllowPaging = true;
grid.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
grid.AutoGenerateColumns = false;
grid.AllowAutomaticUpdates = false;
grid.AllowAutomaticInserts = false;
grid.AllowAutomaticDeletes = false;
grid.AllowMultiRowEdit = true;
//grid.AllowMultiRowSelection = true;
grid.Skin = "Bootstrap";
grid.ItemCommand += new GridCommandEventHandler(instGrid_ItemCommand);
grid.ItemDataBound += new GridItemEventHandler(instGrid_ItemDataBound);
//2.1 Add Customers table
grid.MasterTableView.DataKeyNames = new string[] { "id_badmstorage", "value" };
if (bv.ID != 1)
{
grid.MasterTableView.EditMode = GridEditMode.EditForms;
grid.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.Top;
}
GridBoundColumn boundColumn = new GridBoundColumn();
boundColumn.DataField = "id_badmstorage";
boundColumn.HeaderText = "ID";
boundColumn.ReadOnly = true;
grid.MasterTableView.Columns.Add(boundColumn);
//2.2 SET SQL DATA SOURCE...
sqlInst.SelectCommand = "...";
//3. Add grid columns...
GridTemplateColumn tempC = null;
tempC = new GridTemplateColumn();
tempC.DataField = "value";
tempC.HeaderText = bv.Name;
tempC.UniqueName = "value";
tempC.ItemTemplate = new MyTemplate("value", bv.CvIndex, true);
tempC.EditItemTemplate = new CustomEditTemplate("value", true, bv.Unit, bv.CvIndex, bv.ID);
grid.MasterTableView.Columns.Add(tempC);
if (bv.QualifierList != null)
{
for (int i = 0; i < bv.QualifierList.Count; i++)
{
string temp = (bv.QualifierList[i].QualIndex != "") ? bv.QualifierList[i].QualIndex : bv.QualifierList[i].RealQualName;
tempC = new GridTemplateColumn();
tempC.DataField = temp;
tempC.HeaderText = bv.QualifierList[i].QualName;
tempC.UniqueName = bv.QualifierList[i].QualName;
tempC.ItemTemplate = new MyTemplate(temp, bv.QualifierList[i].CvIndex, bv.QualifierList[i].Required);
tempC.EditItemTemplate = new CustomEditTemplate(temp, bv.QualifierList[i].Required, bv.QualifierList[i].Type, bv.QualifierList[i].CvIndex, bv.ID);
tempC.Visible = (i <= 5);
grid.MasterTableView.Columns.Add(tempC);
}
}
//4. Edit commands
if (bv.ID != 1)
{
GridEditCommandColumn eCol = new GridEditCommandColumn();
eCol.UniqueName = "EditCommandColumn";
grid.MasterTableView.Columns.Add(eCol);/**/
}
//5. delete command
if (bv.ID != 1)
{
/*tempC = new GridTemplateColumn();
tempC.UniqueName = "DeleteColumn";
// tempC.HeaderText = "Delete";
tempC.ItemTemplate = new DeleteTemplate("delete");
grid.MasterTableView.Columns.Add(tempC);*/
}
// grid.ClientSettings.ClientEvents = new GridClientEvents(
//6. Add the grid to the placeholder
this.PlaceHolder1.Controls.Add(grid);
//AJAX SETTINGS...
AjaxSetting ajax = new AjaxSetting(grid.ID);
AjaxUpdatedControl up = new AjaxUpdatedControl();
up.ControlID = grid.ID;
ajax.UpdatedControls.Add(up);
up = new AjaxUpdatedControl();
ajax.UpdatedControls.Add(up);
RadAjaxManager1.AjaxSettings.Add(ajax);
}
private bool compareHTable(Hashtable tnew, Hashtable told)
{
foreach (string key in tnew.Keys)
{
if (tnew[key] != told[key])
{
return false;
}
}
return true;
}
public int IdVar
{
get { return idVar; }
}
protected void instGrid_ItemCommand(object sender, GridCommandEventArgs e)
{
string body = "";
SqlConnection cn = new SqlConnection(conn);
cn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
if (e.CommandName == "Update")
{
//Perform updates
}
else if (e.CommandName == "InitInsert")
{
}
else if (e.CommandName == "Edit")
{
//Edit code
}
else if (e.CommandName == "PerformInsert")
{
//Insert code
}
else if (e.CommandName == "Delete")
{
GridEditableItem editedItem = e.Item as GridEditableItem;
string idbm = editedItem.GetDataKeyValue("id_badmstorage").ToString();
cmd.CommandText = "UPDATE BADMStorage16 SET dataStatus=404, deleteUserId="+insertUserId+", deletedDate='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "' WHERE id_badmstorage=" + idbm;
cmd.ExecuteNonQuery();
body += "\nDeleted item for variable "+bv.Name+", record ID="+idbm+" by " + Session["usname"].ToString();
}
cn.Close();
}
}