C# - Creating Panel With Images And Linkbutton At Runtime?
Jul 14, 2010
I have a Masterpage that has Treeview. You can select some nodes there. Based on the selection you get some items in the Default.aspx's Placeholder, you get a image and a linkbutton placed in a Panel. Like this :
This code is in the Default.aspx that has the Masterpage.
[Code]....
There seems to be problem when i create the controllers at runtime, when the site does a postback, lets say if i click "Enska" in the treeview i get the results in the image above. Lets say that i then click "The Punk Panther" i get a error.
An error has occurred because a control with id 'ctl00$CPH_Main$ctl05' could not be located or a different control is assigned to the same ID after postback. If the ID is not assigned, explicitly set the ID property of controls that raise postback events to avoid this error.
Also, how would i go by making a event handler for the linkbutton at runtime, can i make one event handler that every linkbutton uses or what ? I want the folder and the linkbutton to be clickable and link to the same place, is it simpler to make the whole Panel clickable, if so, how would i get a "OnClick" event on it ?
How to set linkbutton as default button for asp:panel in asp.net? I know a button can be set as default but my application uses linkbuttons for all forms. Any suggestion how it can be done.
EDIT:Now i tried this,It works in firefox as well but my javascript validation (ie) onclient click of my linkbutton doesn't work why?
var __defaultFired = false;
function WebForm_FireDefaultButton(event, target) { var element = event.target || event.srcElement;[code]....
I have a number of images on my website (asp.net c# web.application) that are loaded on to my site. I have a specific domain that I use to load images with but I dont have it included in my markup. So at runtime I want to add this domain to the images if they dont already have it added at compile time. Whats the best way of doing this? Is it via a http module? I understand by doing this at runtime will have performance issues. Most of my images have relative paths. I cant hard code the domain as it changes by environment the application is running in.
1. On OnCreatedUser event, I create a folder for each members, so that they can store their files inside those. The thing is I use User.Provider key as a folder name. Is this a good way to store? Is this OK from security view point. Otherwise I am planning to use the User.Username. Here are the codes inside the OnCreatedUser event.
[Code]....
2. Inside these user folders I want to put web.config at run time [at the time of registration]. So that a member cannot access files of other members at any cost. Do you have any idea on creating web.config file at runtime inside these folders? Else if you can provide me any other options, I am eager to listen that. I don't want to call database frequently. So if there is any easy solution.
I have a DataTable where the columns are generated programmatically at runtime. I then bind this DataTable to a GridView. What I'm wondering is how I can create the GridView to accommodate this, and if it's not possible, how I can output the DataTable into nicely formatted HTML.
Newbie in using AJAX . Programming in C# and using SQL as a database. Here is my scenario. User selects a project and I want to display the subprojects related to that project. Here is the query I use to retrieve subprojects.
"SELECT SubProjectName,StartDate,Description FROM SubProject WHERE ProjectName'"+ddlProjectName.text+"';
Currently I store the results of the query in a Dataset. I want to get the SubProjectName in the Header of the Accordion and StartDate and Description values to the text box for each accordion. ( This is what I need to do in each accordian for each subproject)
I have a requirement whereby one or more image buttons need to be created in a user control at runtime. The number of buttons is determined from a database where a user can add one or more rows that contain an image for each button, so if a user adds 3 images to a table, 3 image buttons are created. Ive used this code but I get an error at runtime
The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.
[Code]....
this is the usercontrol aspx
[Code]....
I basically want one or more buttons to render within the div in the usercontrol. Ive only got the code written for one button at the moment while I test the rendering, eventually they will be rendered in a loop of records taken from a database. Whats the best way to do this ?
I need to create aspx pages on the fly or at the runtime.I read that creating a template page and posting content to the page would be a solution, in a few posts in the forum. Can i get information on this method.
Sometimes MS provides error message so silly that its hard to understnad and you feel like throwing away all things.
My Web.Config does not contain any entries of MemberShip, Role or Profile.
I want to create a membership provider dynamically through code at runtime. I wrote following code and it receives following error message. I don;t know how come machine.config error appears in my application. how annoying.
Parser Error Message: The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty.
i am creating some of the control at runtime according database values. problem is that when i click onto the button, if the text box is empty, the required field validator(genrated at runtime) show first time that the text box is empty. but one agin i click on to the button, it doest show any error messege and all of the control which i am genrating at run time are hiding when i see at the page source, no control is find there.
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using AjaxControlToolkit; using click2install.controls; public partial class FeebackForm_Client : System.Web.UI.Page { HtmlGenericControl table = new HtmlGenericControl("table"); DataSet ds = new DataSet(); protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { CreateForm(); } } public void CreateForm() { ds = DBManager.ExecuteDataset("[FeedBack_FeedbackDetail_get]"); for (int i = 1; i < ds.Tables[0].Columns.Count - 1; i = i + 4) { //CreateControl(txtAddress.Text.ToString(), txtAddressRun, false, false, txtAddressToolTip.Text, txtAddressWaterMark.Text); string Name = ds.Tables[0].Rows[0][i].ToString().Replace(" ",""); if (Name != "") { TextBox txtControl = new TextBox(); //RequiredTextBox txtControl = new RequiredTextBox(); txtControl.ID = "txt" + Name; txtControl.CausesValidation = true; bool RequiredField; bool ToolTip; if (ds.Tables[0].Rows[0][i + 3].ToString() == "True") { RequiredField = true; } else RequiredField = false; if (ds.Tables[0].Rows[0][i + 1].ToString() != "") { ToolTip = true; } else ToolTip = false; string TooltipText = ds.Tables[0].Rows[0][i + 1].ToString(); string WaterMarkText = ds.Tables[0].Rows[0][i + 2].ToString(); CreateControl(Name, txtControl, RequiredField, ToolTip, TooltipText, WaterMarkText); } } HtmlGenericControl tr = new HtmlGenericControl("tr"); HtmlGenericControl td1 = new HtmlGenericControl("td"); HtmlGenericControl td2 = new HtmlGenericControl("td"); HtmlGenericControl td3 = new HtmlGenericControl("td"); HtmlGenericControl td4 = new HtmlGenericControl("td"); Button btnInsertRun = new Button(); btnInsertRun.Text = btnSubmit.Text.ToString(); btnInsertRun.ValidationGroup = "Check"; td2.Controls.Add(btnInsertRun); tr.Controls.Add(td1); tr.Controls.Add(td2); tr.Controls.Add(td3); tr.Controls.Add(td4); table.Controls.Add(tr); pnlPreview.Controls.Add(table); System.Threading.Thread.Sleep(500); ScriptManager.RegisterStartupScript(this, GetType(), Guid.NewGuid().ToString(), "Hide();", true); System.Threading.Thread.Sleep(500); ScriptManager.RegisterStartupScript(this, GetType(), Guid.NewGuid().ToString(), "ShowAddDisability()", true); } public void btnInsertRun_Click(object sender, System.EventArgs e) { CreateForm(); //ds = DBManager.ExecuteDataset("[FeedBack_FeedbackDetail_get]"); //TextBox txt1,txt2,txt3,txt4,txt5=new TextBox(); //objBox2 = this.Page.FindControl("objBox2") as TextBox; string ss = "txt" + ds.Tables[0].Rows[0][1].ToString(); //TextBox objTextBox = (TextBox)PnlControlPanel1.FindControl(strControlName); TextBox txt1 = new TextBox(); txt1 = (TextBox)this.Page.FindControl("txt" + ds.Tables[0].Rows[0][1].ToString()); //txt1=this.pnlContainer.FindControl("txt"+ds.Tables[0].Rows[0][1].ToString()) as TextBox; // txt2 = this.pnlContainer.FindControl("txt" + ds.Tables[0].Rows[0][5].ToString()) as TextBox; // txt3 = this.pnlContainer.FindControl("txt" + ds.Tables[0].Rows[0][9].ToString()) as TextBox; // txt4 = this.pnlContainer.FindControl("txt" + ds.Tables[0].Rows[0][13].ToString()) as TextBox; // txt5 = this.pnlContainer.FindControl("txt" + ds.Tables[0].Rows[0][17].ToString()) as TextBox; string fh = txt1.Text; //DBManager.ExecuteNonQuery("Feedback_FeedbackInsert", ds.Tables[0].Rows[0][1].ToString(), txt1.Text,ds.Tables[0].Rows[0][5].ToString(), txt2.Text,ds.Tables[0].Rows[0][9].ToString(), txt3.Text,ds.Tables[0].Rows[0][13].ToString(), txt4.Text,ds.Tables[0].Rows[0][17].ToString(), txt5.Text); Response.Write("Ho Gya"); } public void CreateControl(string Name, TextBox ControlID, bool RequiredField, bool Tooltip, string TooltipText, string WaterMarkText) { if (WaterMarkText == "") WaterMarkText = Name; HtmlGenericControl tr = new HtmlGenericControl("tr"); HtmlGenericControl td1 = new HtmlGenericControl("td"); HtmlGenericControl td2 = new HtmlGenericControl("td"); HtmlGenericControl td3 = new HtmlGenericControl("td"); HtmlGenericControl td4 = new HtmlGenericControl("td"); td1.InnerText = Name; ControlID.ValidationGroup = "Check"; //ControlID.ValidatorMessage = Name + " is Required Field"; //ControlID.ValidatorDisplayType = ValidatorDisplay.Dynamic; //ControlID.ValidatorEnableClientScript = true; td2.Controls.Add(ControlID); if (RequiredField == true) { //RequiredFieldValidator Valid = new RequiredFieldValidator(); //Valid.ID = "Valid" + Name; //Valid.ControlToValidate = ControlID.ID.ToString(); //Valid.ErrorMessage = Name + " is Required Field"; //Valid.Text = "*"; //Valid.Display = ValidatorDisplay.Dynamic; //Valid.EnableViewState = true; //Valid.SetFocusOnError = true; //Valid.Enabled = true; //Valid.EnableClientScript = true; //Valid.InitialValue = WaterMarkText; //Valid.ValidationGroup = "Check"; //td3.Controls.Add(Valid); } if (Tooltip == true) { HtmlGenericControl span = new HtmlGenericControl("span"); //span.Attributes.Add("class", "hotspot"); span.Attributes.Add("onmouseout", "tooltip.hide();"); span.Attributes.Add("onmouseover", "tooltip.show('" + TooltipText + "');"); HtmlImage img = new HtmlImage(); img.Src = "info.png"; span.Controls.Add(img); td4.Controls.Add(span); } //TextBoxWatermarkExtender WaterMark = new TextBoxWatermarkExtender(); //WaterMark.WatermarkText = WaterMarkText; //WaterMark.EnableClientState = true; //WaterMark.TargetControlID = ControlID.ID.ToString(); //WaterMark.Enabled = true; //WaterMark.ID = "WaterMark" + Name; //td1.Controls.Add(WaterMark); tr.Controls.Add(td1); tr.Controls.Add(td2); tr.Controls.Add(td3); tr.Controls.Add(td4); table.Controls.Add(tr); } } after rendring the page... <div id="pnlContainer"> <table><tbody><tr><td>Email</td><td><input type="text" id="txtEmail" name="txtEmail"></td><td></td><td><span onmouseover="tooltip.show('Email');" onmouseout="tooltip.hide();"><img src="info.png"></span></td></tr><tr><td>FirstName</td><td><input type="text" id="txtFirstName" name="txtFirstName"></td><td></td><td><span onmouseover="tooltip.show('First Name');" onmouseout="tooltip.hide();"><img src="info.png"></span></td></tr><tr><td>LastName</td><td><input type="text" id="txtLastName" name="txtLastName"></td><td></td><td><span onmouseover="tooltip.show('Last Name');" onmouseout="tooltip.hide();"><img src="info.png"></span></td></tr><tr><td>City</td><td><input type="text" id="txtCity" name="txtCity"></td><td></td><td><span onmouseover="tooltip.show('City');" onmouseout="tooltip.hide();"><img src="info.png"></span></td></tr><tr><td>Address</td><td><input type="text" id="txtAddress" name="txtAddress"></td><td></td><td><span onmouseover="tooltip.show('Address');" onmouseout="tooltip.hide();"><img src="info.png"></span></td></tr></tbody></table></div>
but after the click on to the button it shows only the container div..
I'd like to add a control A (that exists on a page) to a Footer user control's panel. If I create the control A dynamically and add it, I don't have issues. But I would like to avoid adding this dynamically.So, I defined control A in the aspx page and in the code behind, I got reference to the footer's panel and did a Controls.Add() It works fine, but postbacks from this control has strange behavior (could be due to viewstate?) as it doesn't execute some code that is on the page with a !IsPostback condition
i have update panel with some wierd ie 7 issue, when you click a a - z link on the below url, after the async postback the linkbuttons disapear until you mouse over, not sure why this is happening.
I would like to call a method and pass a value to it on a link button autogenerated from the database in a templatefield inside a datagrid. I don't know much about delegates
running the website and viewing the page source, I have realised that there is an OnClick event created for the linkbutton, however, this may be generated anyways. By running my solution using VS debugging, I can see that my method won't fire by clicking any of thos generated linkbuttons.
I have written some code to dynamically generate template columns for gridview which works well. However, each cell in the gridview has to be a linkbutton, which when clicked does a db update and redirects to a specific url with some parameters in it.
I have attached a click event handler to the linkbutton in the InstantiateIn method but the event does not seem to fire.
//Dynamically creating the Grid protected void btnAnalyze_Click(object sender, EventArgs e)
Am currently working on my first ASP.NET projects. I have a requirement for a page where a user can enter their current address, and then add as many previous addresses as they like. I have created a Panel with the required text boxes in, and also an 'Add' button which will allow them to add another address. How could I make a copy of that Panel and add it to the page at runtime ... assuming that it is possible!!!
I have a link button inside an update panel. The problem is the link button on postback is updating the whole page. Tried it with a normal button and the page is not refreshed all. Here's the code.
I'm having problems binding controls at runtime. I've some user controls which need to be bind to the page when one of the dropdownlist selected index changed.
I can able to bind them properly but when if there is any postback event happens I am losing the controls and control values which were created runtime.