In this page I want to create an array of ImageButtons that represent the images in one of my virtual directories. If one of these buttons is clicked the path of this image should appear in a dynamically created textbox. At the end I should be able to save the contents of the TextBox to the DB.
My Problem is the Following: the Save Button triggers but the Imagebuttons that represent my files don't.
Here is the Code behind page of my Web Form and the Class where I create each ImageButton.
public class properties : System.Web.UI.Page
{
private int h;
private Template T1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.PlaceHolder plchProperties;
protected System.Web.UI.WebControls.PlaceHolder plchSaveButton;
protected System.Web.UI.WebControls.ImageButton btnCancel;
protected System.Web.UI.WebControls.Panel pnlImages;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.PlaceHolder plchImages;
protected System.Web.UI.WebControls.Panel pnlProperties;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
T1 = new Template(ref this.plchProperties, ref this.plchSaveButton, ref this.pnlProperties);
h=T1.show_properties(Convert.ToInt32(Request.QueryString["taalnummer"]),Convert.ToInt32(Request.QueryString["pageid"]),Convert.ToInt32(Request.QueryString["elementid"]));
foreach(ImageButton Ib in this.plchSaveButton.Controls)
{
Ib.Click += new ImageClickEventHandler(Ib_Click);
}
if(h==1)
{
T1.Load_Images(ref this.plchImages);
foreach(Control Voorbeeld in this.plchImages.Controls)
{
if(Voorbeeld.GetType().Name=="ImageButton")
{
((ImageButton)(Voorbeeld)).Click+=new ImageClickEventHandler(Voorbeeld_Click);
}
}
}
this.plchProperties.Visible=true;
this.plchSaveButton.Visible= true;
this.pnlImages.Visible=true;
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.btnCancel.Click += new System.Web.UI.ImageClickEventHandler(this.btnCancel_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Ib_Click(object sender, ImageClickEventArgs e)
{
Web W1 = new Web(Convert.ToInt32(Request.QueryString["websiteid"]),Convert.ToInt32(Request.QueryString["pageid"]),Convert.ToInt32(Request.QueryString["taalnummer"]));
W1.pag1.webtempl= T1;
W1.pag1.webtempl.Saveprops();
Response.Redirect("AuthoringCMSMain.aspx?websiteid="+Request.QueryString["websiteid"]+"&pageid="+Request.QueryString["pageid"]+"&templateid="+Request.QueryString["templateid"]+"&languageid="+Request.QueryString["taalnummer"]);
}
private void btnCancel_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("AuthoringCMSMain.aspx?websiteid="+Request.QueryString["websiteid"]+"&pageid="+Request.QueryString["pageid"]+"&templateid="+Request.QueryString["templateid"]+"&languageid="+Request.QueryString["taalnummer"]);
}
private void Voorbeeld_Click(object sender, ImageClickEventArgs e)
{
ImageButton dyn = (ImageButton)sender;
foreach(Control tekst in this.plchProperties.Controls)
{
if(tekst.GetType().Name=="TextBox")
{
if(((TextBox)tekst).ID=="txtImagesource")
{
((TextBox)tekst).Text=dyn.ID;
}
}
}
}
}
The Following Code represents the used Functions in the Template-Class
public int show_properties(int taalnummer, int paginanummer, int elementnummer)
{
BElement een_element = new BElement(RicohSetup);
TElement een_element_inhoud = een_element.getById(elementnummer);
temp = new Element(een_element_inhoud.Id, een_element_inhoud.PosX, een_element_inhoud.PosY, een_element_inhoud.TemplateId, een_element_inhoud.ElementTypeId,een_element_inhoud.Width,een_element_inhoud.Height,taalnummer, paginanummer);
int teller = temp.type.aantal_props;
int posx= 25;
int posy=10;
for (int j=0; j {
Label l = new Label();
properties.Controls.Add(l);
l.Text = temp.type.get_propertyCMS(j).name + ": ";
l.CssClass= "mainclass";
l.EnableViewState=true;
l.Style["Position"]="relative";
l.Style["Align"]="top";
l.Style["LEFT"]= posx.ToString();
l.Style["TOP"]= posy.ToString();
switch(temp.type.get_propertyCMS(j).type)
{
case "TextBox":
TextBox t = new TextBox();
properties.Controls.Add(t);
t.CssClass= "mainclass";
t.Width= 450;
t.Height=150;
t.ID="txt"+temp.type.get_propertyCMS(j).name;
t.Style["Position"]="relative";
t.Style["LEFT"]= posx.ToString();
t.Style["TOP"]= posy.ToString();
t.EnableViewState=true;
posx+=Convert.ToInt32(t.Width.Value);
t.TextMode = TextBoxMode.MultiLine;
t.Text= temp.type.get_propertyCMS(j).Centraal_El.data;
break;
case "CheckBox":
CheckBox c = new CheckBox();
properties.Controls.Add(c);
c.CssClass= "mainclass";
c.Style["Position"]="relative";
l.Style["Align"]="top";
c.Style["LEFT"]= posx.ToString();
c.Style["TOP"]= posy.ToString();
c.EnableViewState=true;
posx+=5;
if(temp.type.get_propertyCMS(j).Centraal_El.data=="yes")
c.Checked= true;
break;
default:
break;
}
/*l = new Label();
properties.Controls.Add(l);
l.Width= 20;
l.Text="
";
l.CssClass= "mainclass";
l.Style["Position"]="relative";
l.Style["LEFT"]= "25px";
l.Style["TOP"]= "10px";*/
posx+=30;
if(posx>=450)
{
posx=-posx;
posx+=50;
posy+=50;
}
}
Create_save_button();
if(temp.type.name=="Image")
{
return 1;
}
else
{
return 0;
}
}
public void Create_save_button()
{
Save = new System.Web.UI.WebControls.ImageButton();
Save.ImageUrl="sources/images/save.gif";
Save.CausesValidation=true;
save.Controls.Add(Save);
Save.CssClass="mainclass";
panelprops.Visible=true;
}
public void Load_Images(ref PlaceHolder images)
{
DirectoryInfo dir = new DirectoryInfo(HttpContext.Current.Server.MapPath("/AuthoringCMS/sources/Portfolio_RicohCMS"));
int teller=1;
FileInfo[]d= dir.GetFiles("*.*");
ImageButton [] im = new ImageButton[d.GetLength(0)];
int i=0;
foreach(FileInfo f in dir.GetFiles("*.*"))
{
if(f.Extension==".jpg" || f.Extension==".gif" || f.Extension==".bmp")
{
im[i]= new ImageButton();
im[i].ID=f.FullName;
im[i].Width= 50;
im[i].Height= 50;
im[i].ImageUrl= f.FullName;
im[i].ToolTip= f.FullName;
//im.CausesValidation=true;
LiteralControl spacer = new LiteralControl(" ");
images.Controls.Add(spacer);
if(teller==10)
{
teller=0;
LiteralControl enter = new LiteralControl("
");
images.Controls.Add(enter);
}
images.Controls.Add(im[i]);
teller++;
i++;
}
}
My Problem is the Following: the Save Button triggers but the Imagebuttons that represent my files don't.
Here is the Code behind page of my Web Form and the Class where I create each ImageButton.
public class properties : System.Web.UI.Page
{
private int h;
private Template T1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.PlaceHolder plchProperties;
protected System.Web.UI.WebControls.PlaceHolder plchSaveButton;
protected System.Web.UI.WebControls.ImageButton btnCancel;
protected System.Web.UI.WebControls.Panel pnlImages;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.PlaceHolder plchImages;
protected System.Web.UI.WebControls.Panel pnlProperties;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
T1 = new Template(ref this.plchProperties, ref this.plchSaveButton, ref this.pnlProperties);
h=T1.show_properties(Convert.ToInt32(Request.QueryString["taalnummer"]),Convert.ToInt32(Request.QueryString["pageid"]),Convert.ToInt32(Request.QueryString["elementid"]));
foreach(ImageButton Ib in this.plchSaveButton.Controls)
{
Ib.Click += new ImageClickEventHandler(Ib_Click);
}
if(h==1)
{
T1.Load_Images(ref this.plchImages);
foreach(Control Voorbeeld in this.plchImages.Controls)
{
if(Voorbeeld.GetType().Name=="ImageButton")
{
((ImageButton)(Voorbeeld)).Click+=new ImageClickEventHandler(Voorbeeld_Click);
}
}
}
this.plchProperties.Visible=true;
this.plchSaveButton.Visible= true;
this.pnlImages.Visible=true;
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.btnCancel.Click += new System.Web.UI.ImageClickEventHandler(this.btnCancel_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Ib_Click(object sender, ImageClickEventArgs e)
{
Web W1 = new Web(Convert.ToInt32(Request.QueryString["websiteid"]),Convert.ToInt32(Request.QueryString["pageid"]),Convert.ToInt32(Request.QueryString["taalnummer"]));
W1.pag1.webtempl= T1;
W1.pag1.webtempl.Saveprops();
Response.Redirect("AuthoringCMSMain.aspx?websiteid="+Request.QueryString["websiteid"]+"&pageid="+Request.QueryString["pageid"]+"&templateid="+Request.QueryString["templateid"]+"&languageid="+Request.QueryString["taalnummer"]);
}
private void btnCancel_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("AuthoringCMSMain.aspx?websiteid="+Request.QueryString["websiteid"]+"&pageid="+Request.QueryString["pageid"]+"&templateid="+Request.QueryString["templateid"]+"&languageid="+Request.QueryString["taalnummer"]);
}
private void Voorbeeld_Click(object sender, ImageClickEventArgs e)
{
ImageButton dyn = (ImageButton)sender;
foreach(Control tekst in this.plchProperties.Controls)
{
if(tekst.GetType().Name=="TextBox")
{
if(((TextBox)tekst).ID=="txtImagesource")
{
((TextBox)tekst).Text=dyn.ID;
}
}
}
}
}
The Following Code represents the used Functions in the Template-Class
public int show_properties(int taalnummer, int paginanummer, int elementnummer)
{
BElement een_element = new BElement(RicohSetup);
TElement een_element_inhoud = een_element.getById(elementnummer);
temp = new Element(een_element_inhoud.Id, een_element_inhoud.PosX, een_element_inhoud.PosY, een_element_inhoud.TemplateId, een_element_inhoud.ElementTypeId,een_element_inhoud.Width,een_element_inhoud.Height,taalnummer, paginanummer);
int teller = temp.type.aantal_props;
int posx= 25;
int posy=10;
for (int j=0; j {
Label l = new Label();
properties.Controls.Add(l);
l.Text = temp.type.get_propertyCMS(j).name + ": ";
l.CssClass= "mainclass";
l.EnableViewState=true;
l.Style["Position"]="relative";
l.Style["Align"]="top";
l.Style["LEFT"]= posx.ToString();
l.Style["TOP"]= posy.ToString();
switch(temp.type.get_propertyCMS(j).type)
{
case "TextBox":
TextBox t = new TextBox();
properties.Controls.Add(t);
t.CssClass= "mainclass";
t.Width= 450;
t.Height=150;
t.ID="txt"+temp.type.get_propertyCMS(j).name;
t.Style["Position"]="relative";
t.Style["LEFT"]= posx.ToString();
t.Style["TOP"]= posy.ToString();
t.EnableViewState=true;
posx+=Convert.ToInt32(t.Width.Value);
t.TextMode = TextBoxMode.MultiLine;
t.Text= temp.type.get_propertyCMS(j).Centraal_El.data;
break;
case "CheckBox":
CheckBox c = new CheckBox();
properties.Controls.Add(c);
c.CssClass= "mainclass";
c.Style["Position"]="relative";
l.Style["Align"]="top";
c.Style["LEFT"]= posx.ToString();
c.Style["TOP"]= posy.ToString();
c.EnableViewState=true;
posx+=5;
if(temp.type.get_propertyCMS(j).Centraal_El.data=="yes")
c.Checked= true;
break;
default:
break;
}
/*l = new Label();
properties.Controls.Add(l);
l.Width= 20;
l.Text="
";
l.CssClass= "mainclass";
l.Style["Position"]="relative";
l.Style["LEFT"]= "25px";
l.Style["TOP"]= "10px";*/
posx+=30;
if(posx>=450)
{
posx=-posx;
posx+=50;
posy+=50;
}
}
Create_save_button();
if(temp.type.name=="Image")
{
return 1;
}
else
{
return 0;
}
}
public void Create_save_button()
{
Save = new System.Web.UI.WebControls.ImageButton();
Save.ImageUrl="sources/images/save.gif";
Save.CausesValidation=true;
save.Controls.Add(Save);
Save.CssClass="mainclass";
panelprops.Visible=true;
}
public void Load_Images(ref PlaceHolder images)
{
DirectoryInfo dir = new DirectoryInfo(HttpContext.Current.Server.MapPath("/AuthoringCMS/sources/Portfolio_RicohCMS"));
int teller=1;
FileInfo[]d= dir.GetFiles("*.*");
ImageButton [] im = new ImageButton[d.GetLength(0)];
int i=0;
foreach(FileInfo f in dir.GetFiles("*.*"))
{
if(f.Extension==".jpg" || f.Extension==".gif" || f.Extension==".bmp")
{
im[i]= new ImageButton();
im[i].ID=f.FullName;
im[i].Width= 50;
im[i].Height= 50;
im[i].ImageUrl= f.FullName;
im[i].ToolTip= f.FullName;
//im.CausesValidation=true;
LiteralControl spacer = new LiteralControl(" ");
images.Controls.Add(spacer);
if(teller==10)
{
teller=0;
LiteralControl enter = new LiteralControl("
");
images.Controls.Add(enter);
}
images.Controls.Add(im[i]);
teller++;
i++;
}
}