Toon posts:

Probleem bij Event-handling in ASP.NET

Pagina: 1
Acties:
  • 54 views sinds 30-01-2008

Verwijderd

Topicstarter
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++;
}
}

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwacht je dat iemand hier uit kan komen; zo een lap enorme code, volledig door elkaar heen? :?

Daarnaast nog een Engelse tekst?

Enfin; het zal wel te maken hebben met dynamische controls; je bent te laat met het laden van je controls, hierdoor mis je je events.

[ Voor 85% gewijzigd door gorgi_19 op 24-10-2003 14:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Hoi, mag ik je vragen dat je ff de P&W Quickstart leest?
Dit forum is nl. geen helpdesk ofzo waar je je volledige lap code kunt posten, met een summiere uitleg van wat er fout is, of wat je wilt, en dan maar hoopt dat iemand het voor jou fixt.

Daarnaast is dit ook nog altijd een nederlandstalig forum.

Stel de vraag opnieuw, in het nederlands, met enkel de relevante code, geef aan wat je zelf al geprobeerd hebt, etc....

Kortom: lees de p&w quickstart:
deze vind je hier

[ Voor 9% gewijzigd door whoami op 24-10-2003 14:53 ]

https://fgheysels.github.io/


Dit topic is gesloten.