nachumginat
New member
gridview user control עם כפתור Edit
שלום חברים
אני מנסה לייצר USER CONROL של גריד דינאמי שיכלול בתוכו כפתור EDIT. הבעיה שלי שכאשר הקונטרול מוצג בדף הכפתור מבצע רק פוסטבק ולא מגיע לאיוונט שנקבע לו.
זה הקוד:
Gridforedit.ascx.cs
public partial class UserControl_GridForEdit : System.Web.UI.UserControl
{
public event EventHandler ButtonEditClick;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
Session["LastDt"] = Session["LastColums"] = null;
lblError.Visible = false;
alink.Visible = false;
}
}
protected void OnPaging(object sender, GridViewPageEventArgs e)
{
}
public void BindDataForEdit(DataTable dt, string GridName = "", object[] Columns = null)
{
if (dt != null && dt != (DataTable)Session["LastDt"])
Session["LastDt"] = dt;
if (Columns != (object[])Session["LastColums"])
Session["LastColums"] = Columns;
if (Session["LastDt"] == null)
return;
if (GridName == "")
GridName = "grd" + Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 8);
GridView gvGeneral = new GridView();
gvGeneral.ID = "GridName";
gvGeneral.CssClass = "table table-striped table-bordered table-hover";
gvGeneral.AutoGenerateColumns = false;
gvGeneral.EmptyDataText = "אין נתונים להצגה";
Columns = (object[])Session["LastColums"];
dt = (DataTable)Session["LastDt"];
try
{
if (Columns != null)
{
for (int i = 0; i < Columns.Length; i = i + 2)
{
{
BoundField boundfield = new BoundField();
boundfield.DataField = dt.Columns[Columns.ToString()].ToString(); //Columns.ToString() ;
if (dt.Columns[Columns.ToString()].DataType.Name.ToString() == "Double")
{ boundfield.DataFormatString = "{0:C}"; }
boundfield.HeaderText = Columns[i + 1].ToString();
gvGeneral.Columns.Add(boundfield);
}
}
TemplateField tfield = new TemplateField();
tfield.HeaderText = "Edit";
tfield.ItemTemplate = new CreateItemTemplate(ListItemType.Item);
gvGeneral.Columns.Add(tfield);
}
else
{
for (int i = 0; i < dt.Columns.Count; i++)
{
BoundField boundfield = new BoundField();
boundfield.DataField = dt.Columns.ColumnName.ToString();
if (dt.Columns[Columns.ToString()].DataType.Name.ToString() == "Double")
{ boundfield.DataFormatString = "{0:C}"; }
boundfield.HeaderText = dt.Columns.ColumnName.ToString();
gvGeneral.Columns.Add(boundfield);
}
}
gvGeneral.DataSource = dt;
gvGeneral.DataBind();
}
catch (Exception ex)
{
&n
שלום חברים
אני מנסה לייצר USER CONROL של גריד דינאמי שיכלול בתוכו כפתור EDIT. הבעיה שלי שכאשר הקונטרול מוצג בדף הכפתור מבצע רק פוסטבק ולא מגיע לאיוונט שנקבע לו.
זה הקוד:
Gridforedit.ascx.cs
public partial class UserControl_GridForEdit : System.Web.UI.UserControl
{
public event EventHandler ButtonEditClick;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
Session["LastDt"] = Session["LastColums"] = null;
lblError.Visible = false;
alink.Visible = false;
}
}
protected void OnPaging(object sender, GridViewPageEventArgs e)
{
}
public void BindDataForEdit(DataTable dt, string GridName = "", object[] Columns = null)
{
if (dt != null && dt != (DataTable)Session["LastDt"])
Session["LastDt"] = dt;
if (Columns != (object[])Session["LastColums"])
Session["LastColums"] = Columns;
if (Session["LastDt"] == null)
return;
if (GridName == "")
GridName = "grd" + Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 8);
GridView gvGeneral = new GridView();
gvGeneral.ID = "GridName";
gvGeneral.CssClass = "table table-striped table-bordered table-hover";
gvGeneral.AutoGenerateColumns = false;
gvGeneral.EmptyDataText = "אין נתונים להצגה";
Columns = (object[])Session["LastColums"];
dt = (DataTable)Session["LastDt"];
try
{
if (Columns != null)
{
for (int i = 0; i < Columns.Length; i = i + 2)
{
{
BoundField boundfield = new BoundField();
boundfield.DataField = dt.Columns[Columns.ToString()].ToString(); //Columns.ToString() ;
if (dt.Columns[Columns.ToString()].DataType.Name.ToString() == "Double")
{ boundfield.DataFormatString = "{0:C}"; }
boundfield.HeaderText = Columns[i + 1].ToString();
gvGeneral.Columns.Add(boundfield);
}
}
TemplateField tfield = new TemplateField();
tfield.HeaderText = "Edit";
tfield.ItemTemplate = new CreateItemTemplate(ListItemType.Item);
gvGeneral.Columns.Add(tfield);
}
else
{
for (int i = 0; i < dt.Columns.Count; i++)
{
BoundField boundfield = new BoundField();
boundfield.DataField = dt.Columns.ColumnName.ToString();
if (dt.Columns[Columns.ToString()].DataType.Name.ToString() == "Double")
{ boundfield.DataFormatString = "{0:C}"; }
boundfield.HeaderText = dt.Columns.ColumnName.ToString();
gvGeneral.Columns.Add(boundfield);
}
}
gvGeneral.DataSource = dt;
gvGeneral.DataBind();
}
catch (Exception ex)
{
&n